如何在Scalatest中并行测试之前初始化共享变量



我的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有一种方法来处理我不知道的内置的方法,我不会感到惊讶。

相关内容

  • 没有找到相关文章

最新更新