如何在ScalaTest中按顺序运行类中的测试?

Posted

技术标签:

【中文标题】如何在ScalaTest中按顺序运行类中的测试?【英文标题】:How to run tests in a class sequentially in ScalaTest? 【发布时间】:2015-10-06 10:15:24 【问题描述】:

我有一个扩展 org.scalatest.junit.JUnitSuite 的类。这个类有几个测试。我不希望这些测试并行运行。

我知道使用 Specs2 有多简单(使用 Specification 扩展类并在类中添加一行 sequential),如下所示:How to run specifications sequentially。

我不想通过设置来更改构建文件: parallelExecution in Test := false 我也不想使用标签顺序运行特定的测试文件。

我想要的只是一种方法来确保我班级中的所有测试都按顺序运行。这可能与 ScalaTest 吗?感谢任何示例测试/模板。

一个快速的谷歌搜索指向我:http://doc.scalatest.org/2.0/index.html#org.scalatest.Sequential

仅就我进行的几个测试而言,我认为创建 StepSuites 完全是矫枉过正。我不完全确定这是否是我的案子的处理方式!

【问题讨论】:

【参考方案1】:

doc for org.scalatest.ParallelTestExecution

ScalaTest 并行运行测试套件的常规方法是并行运行不同的套件,但任何一个套件的测试都是按顺序运行的。

因此,如果您的测试在一个套件中,您似乎不需要做任何事情来获得您想要的东西。

【讨论】:

在我的测试中,测试需要实例化一个导致端口冲突的数据库。有没有办法按顺序运行套件?

以上是关于如何在ScalaTest中按顺序运行类中的测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何让测试在 Scalatest 中始终以相同的顺序运行?

如何在单线程中运行 ScalaTest 套件?

如何使用 SBT Jenkins 插件运行特定测试以进行 ScalaTest 测试

如何在 JUnit4 中按特定顺序运行测试方法?

sbt 中的 ScalaTest:有没有办法在没有标签的情况下运行单个测试?

如何使用 scalatest 运行 sbt 测试?我有一个错误:对象 scalatest 不是包 org 的成员