Могут ли протрансляторные тесты выполняться в случайном порядке?
Я пытаюсь обеспечить независимость между испытаниями транспортира в спецификации.
Чтобы определить, зависят ли тесты от состояния, введенного предыдущим тестом, я хотел бы запустить эти тесты в случайном порядке.
Есть ли способ сказать транспортиру, порядок испытаний может быть рандомизирован?
Я нашел запрос функции для Jasmine в pivotaltracker
Ответы
Ответ 1
Начиная с 10/10/17, можно установить параметр в файле protractor.conf.js JasmineNodeOpts для запуска спецификаций в полуслучайном порядке при использовании Jasmine, никакого кода не требуется.
В файле protract.conf.js добавьте следующий блок json:
jasmineNodeOpts?: {
...
/**
* If true, run specs in semi-random order
*/
random?: boolean,
...
};
Источник
Ответ 2
Вы можете выполнить спецификации в случайном порядке, перетасовывая их в конце набора:
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
});