【问题标题】:How Do I Run a Subset of Unit Tests Gulp-Angular with Karma?如何使用 Karma 运行单元测试的子集 Gulp-Angular?
【发布时间】:2016-04-06 18:05:45
【问题描述】:

我正在开发一个由 Gulp-Angular yeoman 生成器创建的 AngularJS 1.4 项目。它已经配置了 karma 和 gulp,因此当我从命令行运行 gulp test 时,karma 会运行我的所有 *.spec.js 文件。我的问题是它总是在整个项目中运行我的所有 spec.js 文件。我想只运行一个或两个 spec.js 文件——更好的是能够指定一个文件夹并让它递归地找到所有 spec.js 文件。

  • 我已尝试仅 cd 到一个文件夹,但它仍然运行所有测试。

  • 我也尝试在 karma.conf.js 中编辑这一行: path.join(conf.paths.src, '/**/*.spec.js'),

  • 以及 gulp 目录的 unit-tests.js 文件中的这一行: path.join(conf.paths.src, '/**/!(*.spec).js')

但是,当我编辑它们时,我仍然让整个项目中的所有测试套件都在运行!啊!

一定有办法做我想做的事。任何人都可以在这里用正确的方法帮助我吗?

【问题讨论】:

  • 当前答案不起作用。其他人有解决方案吗?

标签: javascript angularjs unit-testing karma-runner karma-jasmine


【解决方案1】:

Karma 是测试运行者。 Yeoman 的gulp-angular 生成器使用 Jasmine 作为测试器。

搜索文件 jasmine.json。

有一个"spec_dir" 和一个"spec_files" 部分,看起来像:

  "spec_dir": "./",
  "spec_files": [
    "**/*[sS]pec.js"
  ],

修改它以满足您的需求。我猜是这样的:

  "spec_dir": "./some_specific_path",
  "spec_files": [
    "**/*[sS]pec.js"
  ],

或者如果你想从根开始逐步进行:

  "spec_dir": "./",
  "spec_files": [
    "some_specific_path_1/**/*[sS]pec.js",
    "some_specific_path_2/**/*[sS]pec.js"
  ],

【讨论】:

  • 谢谢,但我在项目的任何地方都没有看到 jasmine.json 文件。 gulp-protractor 中只有 jasmine.js |量角器 |节点模块 |茉莉花 |斌,但我不认为是这样。 ://
  • 好的,然后试试 protractor.conf.json。更改规格部分。上述路径样式适用。
  • 能否请您输入完整路径。我的项目中没有protractor.conf.json。
  • 改变什么?在 protractor.conf.js 中,我尝试更改:specs: [paths.e2e + '/**/*.js'],但没有任何反应。 protractor.spec.js 中没有 spec_dir 或 spec_files 对象。
  • 我尝试在 gulp 文件夹中的 conf.js 中更改 export.paths 中的 src:exports.paths = { src: 'src', dist: 'dist', tmp: '.tmp', e2e : 'e2e' };但是,我似乎无法在这里使用 src 的路径数组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多