Запуск JBehave с Junit 5 Юпитера - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь запустить некоторые тесты JBehave на основе JUnit 4 на JUnit 5. В моем проекте у меня есть один тестовый класс для всех историй JBehaveTest.

Когда я запускаю его как JUnit 5test JUnit не видит никаких тестов.Я изменил аннотации @Test на их эквиваленты Юпитера, я заменил assertTrue и assertFalse на их эквиваленты и т. Д.

Тест JUnit 4 снабжен аннотацией @RunWith, которая в JUnit5 должна быть аннотацией @ExtendWith, если я правильно понял.К сожалению, JBehave не является расширением JUnit 5, поэтому оно не будет компилироваться.

Можно ли использовать JBehave с JUnit 5, и если да, то как?

@RunWith(AnnotatedEmbedderRunner.class)
@UsingEmbedder(embedder = Embedder.class, verboseFailures = true,  ignoreFailureInStories = false, generateViewAfterStories = true)
public class JBehaveTest implements Embeddable {
private Embedder embedder;
private DotStoryReporter dot = new DotStoryReporter();
private Stage primaryStage;

@Before
public void createStage() throws TimeoutException {
    Locale locale = new Locale("fa", "IR");
    Locale.setDefault(locale);
    primaryStage = FxToolkit.registerPrimaryStage();
}

@Override
@Test
public void run() throws Throwable {
    embedder.runStoriesAsPaths(new StoryFinder().findPaths("src/test/resources", Collections.singletonList("**/*.story"), Collections.<String>emptyList()));
}

@Override
public void useEmbedder(Embedder embedder) {
    this.embedder = embedder;
    MostUsefulConfiguration configuration = new MostUsefulConfiguration();
    Steps steps = new Steps();
    configuration.useStoryReporterBuilder(
            new StoryReporterBuilder()
                    .withCodeLocation(CodeLocations.codeLocationFromClass(JBehaveTest.class))
                    .withDefaultFormats()
                    .withReporters(dot, new MyStoryReporter(new File("test"), steps))
                    .withFormats(Format.HTML, Format.TXT)
                    .withFailureTrace(true)
                    .withFailureTraceCompression(false));
    configuration.useStepdocReporter(new DetailedStepReporter());

    embedder.useStepsFactory(new InstanceStepsFactory(configuration, steps));
    embedder.useConfiguration(configuration);
}

Тест Gradleзависимости:

testCompile 'org.junit.jupiter:junit-jupiter-api:5.2.0'
testCompile 'org.mockito:mockito-core:2.18.3'
testRuntime 'org.junit.jupiter:junit-jupiter-engine:5.2.0'
testRuntime 'org.junit.platform:junit-platform-launcher:1.2.0'
testCompile 'org.testfx:testfx-core:4.0.+'
testCompile 'org.testfx:testfx-junit5:4.0.+'
testCompile 'org.jbehave:jbehave-core:4.3.2'
testCompile 'de.codecentric:jbehave-junit-runner:1.2.0'
...