我的scalatest代码如下:
class myTest extends FlatSpec with ParallelTestExecution {
val testSuiteId: String = GenerateSomeRandomId()
it should "print test id" in {
println(testSuiteId)
}
it should "print test id again" in {
println(testSuiteId)
}
}
这两个测试无法打印我在它们之前生成的测试仪。相反,他们再生ID并打印它。我知道,由于延伸了OneInstancePertest的AdalLeltestExecution,这里的每个测试都在其自己的实例上进行,并具有变量" TestSuiteId"的副本。
,但我确实想要此测试套件的固定ID,并且此套件中的每个测试用例都可以访问该套件,而无需对其进行修改。我试图在beforeall {}中创建固定的ID,但仍然不起作用。
我应该如何实现我想要的?
围绕它的一种方法是将共享状态放在某种外部对象中:
object SuiteId {
lazy val id: String = GenerateSomeRandomId()
}
诚然,这是一个很大的黑客,如果Scalatest有一种方法来处理我不知道的内置的方法,我不会感到惊讶。