Karma.conf.js不存在

时间:2014-05-31 02:52:17

标签: gruntjs yeoman karma-runner

我刚刚从头开始重新安装节点。我还安装了yeomangenerator-angularkarma

使用yo angular生成项目后,我可以成功grunt serve。但是,每当我尝试grunt test时,都会抛出以下错误:

karma.conf.js does not exist

但是,karma.conf.js确实存在于生成的测试目录中。为什么会这样?

3 个答案:

答案 0 :(得分:11)

Gruntfile.js指的是root-dir中的karma.conf.js。 Angular生成器将它放在test-directory中,因此您需要更新Gruntfile.js

// Test settings
karma: {
  unit: {
    configFile: 'test/karma.conf.js',
    singleRun: true
  }
}

使用此生成的karma.conf.js运行grunt测试时也存在问题。它会说

test/karma.conf.js:63
    colors: true,
    ^^^^^^
ERROR [config]: Invalid config file!
  SyntaxError: Unexpected identifier

原因:在< unitRun:false'。

之后,逗号丢失了

答案 1 :(得分:1)

我也有这个问题,但我使用的是CoffeeScript。原来,karma.conf.js的CoffeeScript没有被创建。 karma.conf.coffee已正确放置在测试文件夹中,但它没有被编译。所以在我的gruntfile中(在咖啡任务下)我替换了这个......

  test: {
    files: [{
      expand: true,
      cwd: 'test/spec',
      src: '{,*/}*.coffee',
      dest: '.tmp/spec',
      ext: '.js'
    }]
  }

有了......

      test: {
    files: [{
      expand: true,
      cwd: 'test/spec',
      src: '{,*/}*.coffee',
      dest: '.tmp/spec',
      ext: '.js'
    },
    {
      expand: true,
      cwd: 'test',
      src: 'karma.conf.coffee',
      dest: 'test',
      ext: '.conf.js'
    }]
  }

我所做的只是确保在测试目录中编译了karma.conf.coffee。

这有效但我仍然遇到错误,因为在karma.conf.coffee中,有些文件的扩展名不正确(' cs'而不是'咖啡')特别是。

  'app/scripts/**/*.cs'
  'test/mock/**/*.cs'
  'test/spec/**/*.cs'

我刚刚将扩展名更改为coffeescript(并删除了模拟文件夹,因为我还没有使用它)。

  'app/scripts/**/*.coffee'
  'test/spec/**/*.coffee'

之后,构建和测试工作。我是Yeoman的新手,所以我不确定这是否可以轻易避免,但这是我必须做的才能让事情发挥作用。

答案 2 :(得分:0)

就我而言,我甚至找不到karma.conf.js。但是,我意识到你是否

grunt --force

你将能够获得更多信息,你可能会得到内部发生的事情

Running "karma:unit" (karma) task
08 09 2015 13:16:33.928:WARN [plugin]: Cannot find plugin "karma-phantomjs-launcher".
  Did you forget to install it ?
  npm install karma-phantomjs-launcher --save-dev
08 09 2015 13:16:33.939:WARN [plugin]: Cannot find plugin "karma-jasmine".
  Did you forget to install it ?
  npm install karma-jasmine --save-dev
Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine) Used --force, continuing.

最后,我能够弄清楚我错过了什么。

希望得到这个帮助。