Jasmine 2.0中的测试是否并行运行?根据我的经验,它们不是,但Jasmine.js: Race Conditions when using "runs"引用的文章表明,Jasmine确实并行运行它们,所以我想知道我是不是错误地编写了我的测试。
这是一组我期望在1秒而不是4秒内执行的测试。
describe("first suite", function() {
it("first test", function(done) {
expect(true).toBeTruthy();
setTimeout(done, 1000);
});
it("second test", function(done) {
expect(true).toBeTruthy();
setTimeout(done, 1000);
});
});
describe("second suite", function() {
it("first test", function(done) {
expect(true).toBeTruthy();
setTimeout(done, 1000);
});
it("second test", function(done) {
expect(true).toBeTruthy();
setTimeout(done, 1000);
});
});
我错过了什么吗?
答案 0 :(得分:13)
Jasmine实际上并没有以任何方式并行运行您的规范。但是,如果规范的异步部分需要足够长的时间,内置的时间限制将会导致jasmine开始运行下一个规范,即使可能仍然存在从早期规范运行的代码。
答案 1 :(得分:6)
如果您想并行运行测试并且使用karma作为测试启动器,则可以使用karma-parallel在多个浏览器实例之间拆分测试。它在不同的浏览器实例中运行规范,非常简单,易于安装:
npm i karma-parallel
然后将'parallel'添加到karma.conf.js
中的框架列表中module.exports = function(config) {
config.set({
frameworks: ['parallel', 'jasmine']
});
};
披露:我是作者