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

Posted

技术标签:

【中文标题】如何在单线程中运行 ScalaTest 套件?【英文标题】:How can I run ScalaTest suites in a single thread? 【发布时间】:2018-03-04 13:05:53 【问题描述】:

ScalaTest 的默认行为是“并行运行不同的套件,但按顺序运行任何一个套件的测试”。 See ParallelTestExecution.

如何限制一组套件(可能使用SuiteMixin)以全部顺序运行?这个related answer 表示“启用分叉但禁用并行执行”。如何使用 gradle 测试运行器执行此操作?

我的用例专门围绕在 gradle 下运行一组基于 SparkSession 的集成测试套件。

【问题讨论】:

【参考方案1】:

看SequentialNestedSuiteExecution。

Sequential 提供了它的具体实现。

【讨论】:

看来我需要研究嵌套套件的工作原理。现在我所有的套件都是独立的独立套件,它们都混合在我的 TestSparkSession SuiteMixin 中,它提供了 Spark 会话。希望我可以注释这个 mixin 以声明这些套件“顺序”。 如果我们可以添加一个示例,这个问题和答案会更有帮助。 ScalaTest-doc 中的高级示例将我置于与@PeterStephens 相同的位置——非常迷茫,并且在自我启蒙的旅程中,没有明确的前进方向。特别是,在测试整个项目时,我会将 Sequential 将执行的套件放在哪里,以避免它们自己执行?

以上是关于如何在单线程中运行 ScalaTest 套件?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何执行单个嵌套的 ScalaTest Suite?

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

Scalatest - 并行套件

并行运行 ScalaTest 测试

使用 ScalaTest 和 SBT android-sdk-plugin