【问题标题】:Can I fail the build if Karma didn't run all the tests?如果 Karma 没有运行所有测试,我会失败吗?
【发布时间】:2015-01-27 16:13:29
【问题描述】:
Karma 能够限制运行哪些测试。例如,在 Mocha 中,如果我将 describe 更改为 describe.only,则只有该套件中的测试会运行。
这对 TDD 非常有用,因为我可以专注于测试子集并更快地获得结果。但是,我担心我在签入时会意外留下describe.only,这样 CI 构建就不会运行所有测试。
有没有办法做到以下几点:
- 强制 Karma 运行所有测试,忽略
describe.only、ddescribe 等?
- 找出 Karma 是否只运行了一部分测试,这样我就可以使构建失败并提醒不小心离开
describe.only 的开发人员?
【问题讨论】:
标签:
javascript
continuous-integration
tdd
mocha.js
karma-runner
【解决方案1】:
Karma 似乎没有这样的功能(还 :))所以同时我创建了一个 grunt 任务来扫描测试。
grunt.registerTask('checkOnlyTests', 'Makes sure no define.only or it.only functions are left', function() {
grunt.file.expand(['test/**/*.js']).forEach(function(f) {
var contents = grunt.file.read(f);
if (contents.search('describe.only') !== -1) {
grunt.fail.warn('describe.only() found in ' + f);
}
if (contents.search('it.only') !== -1) {
grunt.fail.warn('it.only() found in ' + f);
}
});