Если я правильно помню из моих дней жасмин / мокко, было несколько способов достичь этого.Я опишу несколько, но я уверен, что могут быть и другие.Используйте тот, который лучше для вас.
1. Используйте оператор it.skip()
внутри выражения условного оператора для определения состояния тестового случая (например, в случаеa smokeRun
, пропустите тесты на отсутствие дыма, используя: (smokeRun ? it.skip : it)('not a smoke test', () => { // > do smth here < });
).
Вот расширенный пример:
// Reading the smokeRun state from a system variable:
const smokeRun = (process.env.SMOKE ? true : false);
describe('checkboxes testsuite', function () {
// > this IS a smoke test! < //
it('#smoketest: checkboxes page should open successfully', () => {
CheckboxPage.open();
// I am a mock test...
// I do absolutely nothing!
});
// > this IS NOT a smoke test! < //
(smokeRun ? it.skip : it)('checkbox 2 should be enabled', () => {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
expect(CheckboxPage.lastCheckbox.isSelected()).toEqual(true);
});
// > this IS NOT a smoke test! < //
(smokeRun ? it.skip : it)('checkbox 1 should be enabled after clicking on it', () => {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
CheckboxPage.firstCheckbox.click();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(true);
});
});
2. Используйте it.only()
для достижения в основном того же эффекта,Разница заключается в рабочей нагрузке рефактора в тестовом случае.Я обобщу эти идеи следующим образом:
- , если у вас больше тестов на дым * , чем тестов на дым , используйте подход
it.skip()
; - если у вас больше тестов на дым , чем тестов на дым , используйте подход
it.only()
;
Подробнее о pending-tests
можно прочитать здесь .
3. Использовать время выполнения пропустить (.skip()
) в сочетании с некоторыми вложенными describe
утверждениями.
Это должно выглядеть примерно так:
// Reading the smokeRun state from a system variable:
const smokeRun = (process.env.SMOKE ? true : false);
describe('checkboxes testsuite', function () {
// > this IS a smoke test! < //
it('#smoketest: checkboxes page should open successfully', function () {
CheckboxPage.open();
// I am a mock test...
// I do absolutely nothing!
});
describe('non-smoke tests go here', function () {
before(function() {
if (smokeRun) {
this.skip();
}
});
// > this IS NOT a smoke test! < //
it('checkbox 2 should be enabled', function () {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
expect(CheckboxPage.lastCheckbox.isSelected()).toEqual(true);
});
// > this IS NOT a smoke test! < //
it('checkbox 1 should be enabled after clicking on it', function () {
CheckboxPage.open();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(false);
CheckboxPage.firstCheckbox.click();
expect(CheckboxPage.firstCheckbox.isSelected()).toEqual(true);
});
});
});
! Примечание: Это рабочие примеры!Я протестировал их, используя рекомендованный WebdriverIO проект Jasmine Boilerplace .
! Obs: Существует несколько способов фильтрации тестов Jasmine, к сожалению, только при тестировании-файл ( testsuite ) (например: с использованием grep
операторов по трубопроводу или встроенных атрибутов WDIO specs
& exclude
).