Не удается найти несколько тегов Cucumber при выполнении класса Runner

#java #cucumber #cucumber-jvm

#java #cucumber #cucumber-jvm

Вопрос:

Когда я запускаю следующий класс Runner, тест завершается неудачно, говоря, что он не может найти указанные теги. Когда я указываю любой из тегов сам по себе, тест выполняется и проходит.

Почему я могу указывать только один тег за раз?

 @RunWith(Cucumber.class)
@CucumberOptions(plugin = {
        "pretty", "com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html"
}, glue = {
        "cars"
}, features = {
        "classpath:feature/",
}, tags = {"@edit-car", "@create-car", "@delete-car"})
public class RunnerTest {}
 

Ошибка

 None of the features at [classpath:feature/] matched the filters: [@edit-car, @create-car, @delete-car]
 

Ответ №1:

Семантика tags сбивает с толку. Один из них имеет семантику AND, другой — семантику OR, и я не могу вспомнить, какой именно.

 tags = {"@edit-car", "@create-car", "@delete-car"}
tags = {"@edit-car, @create-car, @delete-car"}
 

Если вы используете последнюю версию Cucumber (> 2.0.0), рассмотрите возможность использования вместо этого одного выражения тега.

 tags = "(@cucumber or @gherkin) and not @zukini"