【问题标题】:Karma.conf.js does not existKarma.conf.js 不存在
【发布时间】:2014-05-31 02:52:16
【问题描述】:

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

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

karma.conf.js does not exist

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

【问题讨论】:

  • 你是bower installnpm install吗?
  • 是的——yeoman(或者更准确地说,generator-angular)在生成脚手架时会自动执行此操作……“我已经完成了。运行 bower install 和 npm install 来安装所需的依赖项。如果失败,请尝试自己运行命令”。
  • 同样的错误,烦人!
  • 一旦我添加了业力,这就奏效了。 npm install karma

标签: gruntjs yeoman karma-runner


【解决方案1】:

Gruntfile.js 指的是根目录中的 karma.conf.js。 Angular 生成器将它放在测试目录中,因此您需要更新 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

原因:“singleRun: false”后缺少逗号。

【讨论】:

  • 另外,如果使用 --coffee 命令生成 angular,则必须将 Gruntfile karama.conf.js 更改为 karma.conf.coddee
【解决方案2】:

我也遇到过这个问题,但我使用的是 CoffeeScript。事实证明,用于 karma.conf.js 的 CoffeeScript 并没有被创建。 karma.conf.coffee 已正确放置在 test 文件夹中,但没有被编译。所以在我的 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”而不是“coffee”),尤其是这 3 行。

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

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

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

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

【讨论】:

    【解决方案3】:

    就我而言,我什至没有找到 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.
    

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

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2023-03-29
      • 1970-01-01
      • 2014-10-14
      • 2018-09-23
      • 1970-01-01
      相关资源
      最近更新 更多