JUnit 5 vintage没有在嵌套静态类中运行测试

时间:2017-03-30 00:17:30

标签: junit junit5

我正在尝试使用JUnit 5 Vintage进行JUnit 4测试。

我在嵌套的静态类中有很多测试。顶级类中的测试运行良好,但嵌套类中的测试不会运行。

例如:

public class SomeOuterClass {
    @Test
    public void outerTest() {
        // test runs
    }

    public static class SomeInnerTests {
        @Test
        public void someTest() {
            // test doesn't run
        }
    }

    public static class OtherInnerTests {
        @Test
        public void otherTest() {
            // test doesn't run
        }
    }
}

我尝试将junitPlatform.filters.includeClassNamePatterns设置为'^.*Tests?$', '^.*Tests?\$.*$',但它无效。

2 个答案:

答案 0 :(得分:1)

您可以使用JUnit 5 Vintage

与JUnit 5一起执行JUnit 4

通过导入JUnit Vintage Engine来使用它:

<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <version>${junit5.vintage.version}</version>
    <scope>test</scope>
</dependency>

答案 1 :(得分:0)

JUnit 5 Vintage在最终版本中添加了对运行嵌套静态类的支持。

默认情况下,它只查找名称以“Test(s)”结尾的类。要包含未命名的嵌套静态类,请在构建文件中设置以下内容。

junitPlatform.filters.includeClassNamePatterns '^.*Tests?$', '^.*Tests?\\$.*$'