我的团队正在使用 Scala、IntelliJ 和 Maven。
在我正在处理的当前模块的一些测试中,内部测试的执行顺序很重要。
出于某种原因,在 IntelliJ 中使用 JUnit 或 ScalaTest 运行相同的测试会影响执行顺序。
例如,下面的测试:
package com.liveperson.lpbt.hadoop.monitoring.temp
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest.{FunSuite, BeforeAndAfterAll}
@RunWith(classOf[JUnitRunner])
class TempTest extends FunSuite with BeforeAndAfterAll{
println("start TempTest")
override def beforeAll(){
println("beforeAll")
}
override def afterAll(){
println("afterAll")
}
test("test code"){
println("in test code")
}
println("end TempTest")
}
使用 JUnit 运行时,上面的代码打印输出:
start TempTest
end TempTest
in test code
beforeAll
afterAll
使用 ScalaTest 运行时,上面的代码打印输出:
start TempTest
end TempTest
beforeAll
in test code
afterAll
有人知道如何编写这样的测试来确保 ScalaTests 和 JUint 中的执行顺序吗?另外,你如何在 IntelliJ 中切换它们?