小编Man*_*ger的帖子

对Spek使用JUnit5标签

我试图将我的测试区分为单元测试和集成测试。我的想法是使用新的JUnit5批注@Tag("unit"),该批注对我的JUnit测试非常有效,但我无法使其与Spek一起使用。

我现在的课程是:

data class MyObject(val value: Int)
Run Code Online (Sandbox Code Playgroud)

我的测试:

@Tag("unit")
object MyObjectTest {

    @Test
    fun checkEquality() {
        val o1 = MyObject(1)
        assertEquals(o1, o1)
    }
}
Run Code Online (Sandbox Code Playgroud)

与我的build.gradle具有:

task utest(type: Test) {
    outputs.upToDateWhen { false }
    useJUnitPlatform {
        includeEngines 'junit-jupiter', 'junit-vintage', 'spek'
        includeTags 'unit'
        excludeTags 'performance', 'integration', 'functional'
    }


    testLogging {
        events "passed", "skipped", "failed"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我执行utest时,这可行。但是,使用Spek进行相同操作时:

@Tag("unit")
object MyObjectSpek : Spek({

   given("an Object") {
       val o1 = MyObject(1)

       it("should be equal to itself") {
           assertEquals(o1, o1)
       }
   }
}) …
Run Code Online (Sandbox Code Playgroud)

java gradle kotlin spek

5
推荐指数
1
解决办法
741
查看次数

标签 统计

gradle ×1

java ×1

kotlin ×1

spek ×1