org.scalatest:全局设置(如beforeAllSuites?)

时间:2011-12-13 09:27:39

标签: installation sbt scalatest

我有一个使用org.scalatest进行一些测试的scala应用程序。这些测试需要一些全局设置(和拆卸),以便管理测试数据库。

请不要告诉我我的测试不应该打到数据库,我应该使用Java-DAO-Stub-WTF-Overkill-Way™: - )。

我正在使用SBT运行测试,这提供了一种在测试之前和之后执行代码的方法:

    testOptions in Test += Tests.Setup( () => println("Setup") )

    testOptions in Test += Tests.Cleanup( () => println("Cleanup") )

不幸的是我无法访问那里的课程。不出所料,将它们导入build.sbt也不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

根据您的需要,您可以使用BeforeAndAfterAllBeforeAndAfter特征。

BeforeAndAfterAll:

  

可以混合到需要之前调用的方法的套件中的特征   并在执行套件后。该特征允许执行代码   在套件的所有测试和嵌套套件之前和/或之后   运行

因此,在这种情况下,您将定义一个MasterSuite,其中包含所有其他套件/测试,从而扩展了这一特性。

BeforeAndAfter:

  

可以混合到需要在之前执行代码的套件中的特性   运行每个测试后。这种特性促进了一种测试方式   替换实例变量中保存的可变夹具对象   或在每个测试或套件之前重新初始化。