TLDR;在同时在BeforeAndAfterall和ParallelTestExecution中混合的
ScalaTest规范中,在每次测试之后调用afterall(),然后在所有测试之后再次调用.我只想要毕竟的行为.
class TestSpec extends fixture.FunSpec with ShouldMatchers with BeforeAndAfter with BeforeAndAfterall with ParallelTestExecution { override def afterall() = { println("afterall") } describe("something") { it("should foo") { println("foo") } it("should bar") { println("bar") } } }
这两个测试想要共享一个夹具,然后afterall()应该清理夹具.我已经省略了夹具代码的细节,因为这个问题并不重要.
这是我测试的输出:
foo afterall bar afterall afterall
因此,然后在所有测试之后再次调用.我只想在所有测试后调用它.
有谁知道为什么afterall()表现得像这样?
更新
如果我不混合使用ParallelTestExecution,我的测试表现正常:
foo bar afterall
不幸的是,我实际上想要ParallelTestExecution.有没有办法让我的蛋糕也吃掉它?