Перейти к основному содержимому

Как пропустить тест в заданном браузере

Проблема

Иногда вам нужно пропустить запуск теста только в определенном браузере, а не во всех браузерах. То есть вы не хотели бы отключать или удалять весь тест, а хотели бы только ограничить количество браузеров, на которых он будет запускаться.

Например, это может быть связано с ограниченной функциональностью соответствующего браузера: отсутствием в нем необходимых возможностей, которые используются на веб-странице и проверяются тестом.

Ещё такая необходимость может возникнуть при нестабильной работе теста в каком-либо браузере, из-за неучета каких-то особенностей реализации в браузере.

В 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