Можно ли игнорировать крючок огурца, если используется определенный тег

Можно ли игнорировать ловушку, если используется определенный тег?

Если используется @someTag, мне нужно, чтобы beforeAll ссылался на импорт с псевдонимом «s2».
В противном случае мне нужно, чтобы beforeAll ссылался на область видимости без псевдонима 's'.

Если я запускаю тест с @someTag, то я ожидаю, что в консоли будет напечатано только «In BeforeAll @someTag - hooks.js», но вместо этого они оба запускаются.

import s from "../location1/s";
import * as s2 from "../location2/s";

BeforeAll("not @someTag", async () => {
  console.log("In BeforeAll - hooks.js");
  s.driver = puppeteer;
})
BeforeAll("@someTag", async () => {
  console.log("In BeforeAll @someTag - hooks.js");
  s2.driver = puppeteer;
});

person Nate Thompson    schedule 21.02.2020    source источник
comment
Вместо использования слова «не» в функции «До» используйте символ «~» и попробуйте один раз   -  person Sreenivasulu    schedule 26.02.2020
comment
Какую версию CucumberJS вы используете? В новых версиях используется not, а в старых — ~.   -  person Steven Hunt    schedule 15.04.2020


Ответы (1)


К сожалению, CucumberJS не поддерживает фильтры тегов или объект мира в хуках beforeAll и afterAll, потому что эти данные просто недоступны в эти моменты жизненного цикла запуска теста. Единственный поддерживаемый параметр для этих хуков является необязательным обратным вызовом.

Если вам нужно переключить какой-либо объект высокого уровня, например веб-драйвер, во время выполнения, рассмотрите возможность использования пакета файла конфигурации, такого как config или переменная среды.

person Steven Hunt    schedule 16.04.2020