У меня есть несколько тестовых наборов Cucumber-Java в некоторых моих проектах Java.Они настроены на бегуны JUnit 4 с использованием аннотации @RunWith
и бегуна Cucumber.
Я только что перешел с IntelliJ 18.2 на 18.3 (Ultimate).В 18.2 модульный тест потерпит неудачу, если будет ошибочное утверждение;в 18.3 неудачный шаг отображается как «пропущенный», и тест проходит успешно.Нужно ли изменить конфигурацию, чтобы это работало?Я ищу решение, которое позволит мне рассматривать как сбои, так и пропуски как сбои, поскольку это наиболее надежное решение, которое наиболее близко имитирует предыдущее поведение.
Бегун выглядит так:
@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"junit:target/junitTests-example.xml"},
monochrome = true,
glue = {"path.to.glue"},
features = "src/test/resources/features/")
public class MyTest { }
Клей выглядит следующим образом (это утверждение JUnit 4):
@When("^I run a failing test$")
public void runTrivialFailureTest() {
assertNull("This test should always fail.");
}
И определение сценария выглядит так:
Feature: Sample
Scenario: A trivial failing test
Given I run a failing test
Scenario: A trivial test with an undefined step
Given I run a test with an undefined step
В 2018.2 IntelliJ этоТест был бы показан как провальный модульный тест.В 2018.3 шаг неудачи показывается как пропущенный, и модульное тестирование проходит.Нет различий в поведении, если тестовый класс запускается как тест JUnit или если сценарий запускается с использованием Java-плагина Cucumber.
Проект является проектом Maven, а из командной строки, когдавызывая плагин surefire, он правильно показывает тесты как неудачные.Только при работе в IntelliJ они рассматриваются как «пропуски».