Scala 中的 JUnit 测试类别?

Aar*_*ver 5 junit unit-testing scala

我成功了!我把这里的Java逐行逐字翻译成Scala:

https://github.com/junit-team/junit/blob/master/doc/ReleaseNotes4.8.md

大多数情况下,它意味着执行 Array(classOf[ClassName])、删除“public”关键字等。我的 IntelliJ IDE 提供了很多建议。


我希望能够运行各类测试,因此我可能会将一类测试标记为“Version2dot3”和“SlowTest”,然后能够仅运行“慢速测试”,或运行“慢速测试和 2.3 测试”。

我一直在尝试使这篇文章适应我的 Scala 测试:

http://weblogs.java.net/blog/johnsmart/archive/2010/04/25/grouping-tests-using-junit-categories-0

java.lang.Exception: No runnable methods我有一个几乎可以工作的基本 shell 设置,但是当我尝试运行 testSuite 时遇到错误。

有想法吗?我已经成功地能够使用 SuiteClasses 仅运行某些测试类,但无法运行测试类别(@Category 注释)。

import org.junit.experimental.categories.{Categories, Category}
import org.junit.runners.Suite.SuiteClasses
import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
@Category(Array(classOf[SlowTests]))
class FunSuiteTest extends FunSuite with DemoHelpers {
  test("demoTest1") {
    println("\n\nrunning DemoTest1...\n\n")
  }
}

@RunWith(classOf[JUnitRunner])
@Category(Array(classOf[SlowTests]))
class FunSuiteTest2 extends FunSuite with DemoHelpers {
  test("demoTest2") {
    println("\n\nrunning DemoTest2...\n\n")
  }
}

@RunWith(classOf[Categories])
@SuiteClasses(Array(classOf[SlowTests]))
class testSuite {

}
Run Code Online (Sandbox Code Playgroud)

Aar*_*ver 2

将这里的Java一行一行翻译成Scala:

https://github.com/junit-team/junit/blob/master/doc/ReleaseNotes4.8.md

大多数情况下,这意味着执行 Array(classOf[ClassName])、删除“public”关键字等。

带有 Scala 插件的 IntelliJ IDE 对建议有很大帮助。

  • @Category(Array(classOf[SlowTests])) 注释只能应用于类,不能应用于单个方法。 (2认同)