gpt4 book ai didi

ScalaTest afterAll() 在每次测试后被调用

转载 作者:行者123 更新时间:2023-12-05 00:27:10 24 4
gpt4 key购买 nike

TLDR;在混合了 BeforeAndAfterAll 的 ScalaTest 规范中和 ParallelTestExecution , afterAll()在每次测试后都被调用,然后在所有测试之后再次调用。我只想要毕竟的行为。

我有一个像这样的 ScalaTest 规范:

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")
}
}
}

两个测试想共享一个fixture,然后 afterAll()应该清理夹具。我已经省略了夹具代码的细节,因为这个问题并不重要。

这是我的测试的输出:
foo
afterAll
bar
afterAll
afterAll

所以 afterAll()在每次测试后都被调用,然后在所有测试之后再次调用。我只想在所有测试后调用它。

有谁知道为什么 afterAll()是这样的吗?

更新

如果我不混进去 ParallelTestExecution ,我的测试行为正常:
foo
bar
afterAll

不幸的是,我实际上想要 ParallelTestExecution .有什么办法可以让我的蛋糕也吃掉吗?

最佳答案

来自马口:https://stackoverflow.com/a/15731847/89509

基本上每个测试用例都会作为它自己的实例运行,每个实例都会调用 afterAll一次。

关于ScalaTest afterAll() 在每次测试后被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21133201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com