karma-runner/karma

Inherit working directory from calling process

Open

#2842 opened on Oct 14, 2017

View on GitHub
 (2 comments) (1 reaction) (0 assignees)JavaScript (11,918 stars) (1,703 forks)batch import
help wanted

Description

Expected behaviour

the working directory for my test runner is my actual working directory

Actual behaviour

the working directory is /

Environment Details

  • Karma version (output of karma --version): 1.7.1
  • karma config
    files: [
      testIndexPath
    ],

    plugins: [
      'karma-coverage',
      'karma-chrome-launcher',
      'karma-jasmine',
      'karma-jasmine-expect-jsx',
      'karma-webpack'
    ],

    preprocessors: {
      [testIndexPath]: ['webpack']
    },

//testIndex file
let context = require.context(path.resolve(process.cwd(), 'src/js/'), true, /\.js$/);
context.keys().forEach(context);

This is how karma-webpack is supposed to be used. However, however, when the file gets loaded by karma, process.cwd() is "/". I would expect it to inherit from the calling process, and also be settable by a configuration option.

Process.cwd() is necessary if you are trying to have a default test index file like my example, and to have it in node_modules. Otherwise I wouldn't know where to look for the code.

Is it possible to add a cwd option to allow setting of the cwd from the node api and the command line? Also, generally it makes more sense for cwd to default to inherit the calling process's cwd.

Contributor guide