当我在Kotlin的嵌套类中指定测试时,如下所示......
import org.junit.jupiter.api.*
class ParentTest
{
@Nested
class NestedTest
{
@Test
fun NotFoundTest() {}
}
@Test
fun FoundTest() {}
}
...使用gradle运行测试时,JUnit无法识别它。只找到FoundTest
并运行。
我正在使用JUnit 5.1和Kotlin 1.2.30以及Gradle 4.6。
答案 0 :(得分:5)
将嵌套类定义为an inner class可以解决此问题。
class ParentTest
{
@Nested
inner class NestedTest
{
@Test
fun InnerTestFound() {}
}
@Test
fun FoundTest() {}
}
作为Sam Brannen indicates,“默认情况下,Kotlin中的嵌套类类似于Java中的static
类”和the JUnit documentation indicates:
只有非静态嵌套类(即内部类)可以作为 @Nested测试类。
在Kotlin中将类标记为inner
编译为非静态Java类。
答案 1 :(得分:5)