16

我们在 ScalaTest 中使用 Spec trait 进行测试。当我们运行整个套件时,它并不总是以相同的顺序运行。谷歌中的大多数答案都建议定义一个套件并指定所有测试名称。但这需要我们在每次添加新测试时添加测试名称。

是否可以使用 DiscoverySuite 本身并定义测试执行顺序?就像按字母顺序运行测试一样。我查看了扩展 DiscoverySuite,但 DiscoverySuite 似乎是私有的 scalatest。

- -更多信息 - -

通过订购我的意思是,如果有测试 A、B、C。

A 类扩展规范 {..}
B 类扩展规范 {..}
C 类扩展规范 {..}

然后我希望测试按顺序运行(A、B、C)。但现在发生的是,它每次都以不同的顺序运行。

4

2 回答 2

12

DiscoverySuite 是 ScalaTest 私有的,是的。Spec(顺便说一下,现在称为 FunSpec)中测试的执行顺序被定义为源文件中出现的顺序。要定义测试类本身的顺序,您需要定义一个nestedSuites 方法并运行该包装器套件而不是使用发现。一旦不再需要订单,您就可以重新使用发现功能。我将着眼于在下一个 ScalaTest 版本中向 DiscoverySuite 添加定义的顺序。

于 2012-06-29T12:44:24.227 回答
1

请参阅http://doc.scalatest.org/1.0/org/scalatest/SequentialNestedSuiteExecution.html

这似乎提供了您正在寻找的特定行为。

于 2014-06-07T13:16:32.383 回答