我试图强化规范内量角器测试之间的独立性。 要检测测试是否依赖于先前测试引入的状态,我想按随机顺序运行这些测试。量角器测试可以按随机顺序运行吗?
有没有办法告诉量角器测试的顺序可以随机化?
我发现茉莉at pivotaltracker
我试图强化规范内量角器测试之间的独立性。 要检测测试是否依赖于先前测试引入的状态,我想按随机顺序运行这些测试。量角器测试可以按随机顺序运行吗?
有没有办法告诉量角器测试的顺序可以随机化?
我发现茉莉at pivotaltracker
截至17年10月10日,可以在protractor.conf.js中设置一个设置JasmineNodeOpts,以便在使用Jasmine时以半随机顺序运行规范,无需代码。
在你protract.conf.js文件中添加以下JSON块:
jasmineNodeOpts?: {
...
/**
* If true, run specs in semi-random order
*/
random?: boolean,
...
};
你可以按随机顺序执行的规范功能请求通过在套件的最终洗牌他们:
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
});
单元测试应保证测试后开始相同的测试之前的状态 - 初始化,测试,断言,还原。我更倾向于确保你的测试是正确的,而不是随机化他们。 – Enigmativity
我想确保在添加新测试时它们是独立的。因此,引入随机因子有助于识别不符合此要求的测试。 – TomVW
随机化他们不会确保他们是独立的。这就像随机发送汽车通过一个十字路口 - 你可能会碰撞,你可能不会 - 但道路绝对不是独立的。你没有证明任何东西。你真的需要确保你放下完全独立的道路,以确保它们是独立的。 – Enigmativity