Как пропустить тест в заданном браузере
Проблема
Иногда вам нужно пропустить запуск теста только в определенном браузере, а не во всех браузерах. То есть вы не хотели бы отключать или удалять весь тест, а хотели бы только ограничить количество браузеров, на которых он будет запускаться.
Например, это может быть связано с ограниченной функциональностью соответствующего браузера: отсутствием в нем необходимых возможностей, которые используются на веб-странице и проверяются тестом.
Ещё такая необходимость может возникнуть при нестабильной работе теста в каком-либо браузере, из-за неучета каких-то особенностей реализации в браузере.
В testplane вы можете сделать это с помощью специальных хелперов (директив) skip
и only
.
Решение 1: директива .skip.in
Например, если вы не хотите запускать тест в браузере IE8
:
describe("feature", function () {
testplane.skip.in("ie8", "it cannot work in this browser");
it("nowaday functionality", function () {
// ...
});
});
При использовании директивы testplane.skip.in
вы увидите в отчете сообщение о том, что запуск в соответствующем браузере был пропущен.
Чтобы пропустить запуск тестов без уведомлений в отчете, вы можете передать хелперу специальный флаг silent
в качестве третьего аргумента:
testplane.skip.in("ie8", "skipReason", { silent: true });
Решение 2: директива .skip.notIn
Также вы можете захотеть запускать тест только в конкретном браузере, например, в Chrome
:
describe("feature", function () {
testplane.skip.notIn("chrome", "it should work only in Chrome");
it("specific functionality", function () {
// ...
});
});
Аналогично, чтобы избавиться от уведомлений в отчете, вы можете передать хелперу специальный флаг silent
в качестве третьего аргумента:
testplane.skip.notIn("chrome", "skipReason", { silent: true });
Решение 3: директивы .only.in и .only.notIn
Ещё вы можете воспользоваться хелперами only.in
и only.notIn
, логика которых противоположна хелперам skip.in
и .skip.notIn
. Плюс эти хелперы по умолчанию не выводят никаких уведомлений в отчете:
testplane.only.in("chrome"); // запустить тест только в chrome
testplane.only.notIn("ie8"); // запустить тест во всех браузерах, кроме ie8
Решение 4: директива .also.in и браузерная опция passive
В случае если вы внедряете новый браузер и вам необходимо его запускать только в нескольких тестах, а у вас их тысячи, то использовать хелпер .skip.in
неудобно. Для решения этой проблемы можно воспользоваться браузерной опцией passive и хелпером .also.in
:
testplane.also.in("ie8"); // запустить тест в пассивном браузере ie8
Ключевые слова
- testplane.skip.in
- testplane.skip.notIn
- testplane.only.in
- testplane.only.notIn
- testplane.also.in