Как не пройти тест Java Cucumber в IntelliJ 18.3? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть несколько тестовых наборов 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 они рассматриваются как «пропуски».

...