我有如下的最新代码:
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)
}
}
这两个测试无法打印我之前生成的testSuiteId。相反,他们重新生成ID并打印它。我理解因为ParallelTestExecution扩展了OneInstancePerTest,所以这里的每个测试都在它自己的实例上运行,并且有一个变量" testSuiteId"。
但是我确实希望这个测试套件有一个固定的Id,并且这个套件中的每个测试用例都可以访问它而不修改它。我尝试在BeforeAll {}中创建固定ID,但它仍然无法正常工作。
我应该如何实现我的目标?
答案 0 :(得分:0)
解决它的一种方法是将共享状态放在某种外部对象中:
object SuiteId {
lazy val id: String = GenerateSomeRandomId()
}
不可否认,这非常糟糕,如果网站管理员有办法处理我不知道的内置内容,我不会感到惊讶。