当方法名称“反引号”时如何对单个方法运行测试()

Fro*_*ket 6 unit-testing gradle kotlin

使用 Gradle 在终端中运行仪器或单元测试相对简单。让我们以这个示例类为例:

class MyClass {
   @Test
   fun mySimpleTest() {
      // Test logic here
   }
}
Run Code Online (Sandbox Code Playgroud)

要在终端中运行这个单一单元测试方法(忽略我可以使用通配符等的事实):

./gradlew a:b:c:test --tests 'com.sample.package.MyClass.mySimpleTest'
Run Code Online (Sandbox Code Playgroud)

但是如果您有一个利用反引号的 Kotlin 方法怎么办?

class MyClass {
   @Test
   fun `my simple test`() {
      // Test logic here
   }
}
Run Code Online (Sandbox Code Playgroud)

我尝试用下划线替换空格,完全删除空格,带或不带反引号等,但没有取得任何成功。

所以我的问题是:当方法名称使用反引号时,如何在终端中运行单个测试方法?

Swe*_*per 6

你不需要做任何特别的事情。保留其中的空格:

./gradlew a:b:c:test --tests 'com.sample.package.MyClass.my simple test'
Run Code Online (Sandbox Code Playgroud)

JVM允许方法名称中包含空格。只是Java语言没有。Kotlin 不需要,实际上也不会将方法的名称更改为其他名称(当然,除非您要求这样做@JvmName)。

  • 如果您只有一个名为“MyClass”的测试类,那么您可以删除完全限定的类名。另外,模式匹配使用通配符,因此您也可以使用“MyClass.my*”,这通常很有用。还值得链接到文档以获取更多示例:https://docs.gradle.org/current/userguide/java_testing.html (3认同)