【问题标题】:How can I run ScalaTest suites in a single thread?如何在单线程中运行 ScalaTest 套件?
【发布时间】:2026-01-22 22:55:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: scala apache-spark gradle scalatest


    【解决方案1】:

    SequentialNestedSuiteExecution

    Sequential 提供了它的具体实现。

    【讨论】:

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