【问题标题】:How to run a single test file with Karma/Jasmine?如何使用 Karma/Jasmine 运行单个测试文件?
【发布时间】:2015-09-15 16:53:27
【问题描述】:

我正在使用 Karma 和 Jasmine 来测试我的 Angular JS 代码。我设法使用 Karma 在我的项目中运行了所有测试,但如果我尝试只运行一个文件,我会收到以下错误:ReferenceError: describe is not defined。是否可以只运行一个测试文件,如果可以,那么如何运行?

附:我正在使用 Intellij IDEA。

【问题讨论】:

  • 有人对此有想法吗?
  • @JayKay 我现在所做的只是注释掉 karma.config.js 中包含的所有其他测试文件,只留下我的测试文件。我还没有找到更好的解决方案。
  • 谢谢您....我们可以按照此操作,直到找到解决方案。 :)
  • @AntonBelev 你好,你在这个问题上有什么进展吗?
  • 嗨,@BiAiB,不,不是真的。我没有时间进一步调查。

标签: angularjs intellij-idea jasmine karma-jasmine karma-runner


【解决方案1】:

虽然不理想,但您可以将describe(和it)替换为fdescribe(和fit),这样只会执行那些测试

另一方面,xdescribe / xit 会从您的套件中排除测试

如果你使用 Gulp,你可以结合 gulp-karma 和 yargs 来传入一个模式作为参数。

来源:https://stackoverflow.com/a/27696472/1782659

【讨论】:

  • 这不是一个选项 :) 我们有 3500 多个测试。这个想法是,如果您刚刚包含了一个新的测试文件,并且您只想运行这个文件。到目前为止,唯一的方法是注释掉 karma.conf.js 文件中的所有其他测试文件。
  • -f- 选项(焦点)就是这样做的(不要忘记在提交之前再次删除它)
  • 布莱赫。 it.only 和 describe.only 更加直观。然而,这奏效了。谢谢。
  • 这里是关于这个功能的good post (JSGuy)
  • 到目前为止,请记住有一个 lint 设置或类似的设置,以避免以提交为中心的测试提交。
【解决方案2】:

如果您像我一样继承了由任务运行程序(例如 gulp)控制的一组测试,并且您遇到了失败,但不确定哪个 文件 实际失败了,您可以通过直接运行 jasmine 来检查单个文件:

1.) 确保您已安装 jasmine(如果包裹在您的任务运行器配置中,则可能未安装)

npm install jasmine

2.) 对文件运行 jasmine:

./node_modules/.bin/jasmine /path/to/my/spec/file.js

./node_modules/jasmine/bin/jasmine.js /path/to/my/spec/file.js

【讨论】:

    猜你喜欢
    • 2016-10-06
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多