我设置 grunt 来运行 node.js 茉莉花测试。由于某种原因,使用此配置,结果总是显示双倍的测试。
这是我的配置:
我在用着茉莉花节点 https://github.com/jasmine-contrib/grunt-jasmine-node插入 grunt 中。
/spec/some-spec.js:
var myModule = require('../src/myModule.js');
describe('test', function(){
it('works', function(done){
setTimeout(function(){
expect(1).toBe(1);
done();
}, 100);
});
});
Gruntfile.js:
module.exports = function(grunt) {
grunt.initConfig({
jasmine_node: {
options: {
forceExit: true
},
all: ['spec/']
}
});
grunt.loadNpmTasks('grunt-jasmine-node');
grunt.registerTask('default', ['jasmine_node']);
};
这导致two正在运行的测试而不是一个。
> grunt
Running "jasmine_node:all" (jasmine_node) task
..
Finished in 0.216 seconds
2 tests, 2 assertions, 0 failures, 0 skipped
我能够重现该行为。这似乎正在发生:
- 该任务在指定文件夹中查找(
spec
在你的情况下)对于文件spec在名字里。
- 然后它再次看起来every整个项目中包含以下文件的文件夹spec在名字里。
最终得到的是要运行的 2 个重叠的测试文件集。
我第一次尝试强迫它变成更合乎逻辑的行为是设置specNameMatcher: null
(默认为“spec”),并将文件夹设置为“spec/”。这会导致不运行任何测试,因为显然指定文件夹中的文件必须满足两个条件(名称和文件夹)。如果你遇到同样的问题specNameMatcher
保留默认值,但文件夹中的文件名称中没有“spec”。
What does工作是将文件夹(或“测试集”或任何您想要的名称)设置为[]
:
jasmine_node: {
options: {
forceExit: true
},
all: []
}
问题是如果你有any项目中其他位置的其他文件名称中带有“spec”,它们将被误认为是 jasmine 的测试。
我认为这种行为是一个错误,它可能应该通过项目的 github 问题页面进行报告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)