Ste*_*ris 5 gradle kotlin junit5
当我在Kotlin的嵌套类中指定测试时,如下所示...
import org.junit.jupiter.api.*
class ParentTest
{
@Nested
class NestedTest
{
@Test
fun NotFoundTest() {}
}
@Test
fun FoundTest() {}
}
Run Code Online (Sandbox Code Playgroud)
...使用gradle运行测试时,JUnit无法识别它。仅FoundTest找到并运行。
我正在使用JUnit 5.1和Kotlin 1.2.30和Gradle 4.6。
将嵌套类定义为内部类可以解决此问题。
class ParentTest
{
@Nested
inner class NestedTest
{
@Test
fun InnerTestFound() {}
}
@Test
fun FoundTest() {}
}
Run Code Online (Sandbox Code Playgroud)
正如Sam Brannen指出的:“默认情况下,Kotlin中的嵌套类类似于staticJava中的类”,并且JUnit文档指出:
只有非静态嵌套类(即内部类)才能用作@Nested测试类。
将类标记为innerKotlin会编译为非静态Java类。
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |