10

我有一个使用 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 也不起作用。

有任何想法吗?

4

1 回答 1

4

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

之前和之后:

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

所以在这种情况下,您将定义一个包含所有其他套件/测试的 MasterSuite,它扩展了这个特性。

之前和之后:

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

于 2011-12-14T10:59:04.030 回答