我试图在规范中强制执行量角器测试之间的独立性。 为了检测测试是否依赖于先前测试引入的状态,我想以随机顺序运行这些测试。
有没有办法告诉量角器测试的顺序可以随机化?
我找到了Jasmine at pivotaltracker
的功能请求答案 0 :(得分:8)
您可以通过在套件末尾对它们进行混洗来以随机顺序执行规范:
var shuffle = function (items) {
var item, ii;
for(var i = 0; i < items.length; i++){
ii = (Math.random() * items.length) | 0;
item = items[i];
items[i] = items[ii];
items[ii] = item;
}
}
describe('Suite', function() {
it("should a", function () {
console.log("execute a");
});
it("should b", function () {
console.log("execute b");
});
it("should c", function () {
console.log("execute c");
});
shuffle(this.children); // shuffle the specs
});
答案 1 :(得分:4)
截至10/10/17,可以在protractor.conf.js JasmineNodeOpts中设置一个设置,以便在使用Jasmine时以半随机顺序运行规范,无需代码。
在protract.conf.js文件中添加以下json块:
jasmineNodeOpts?: {
...
/**
* If true, run specs in semi-random order
*/
random?: boolean,
...
};