【问题标题】:Running junit parameterized tests (not classes) in parallel并行运行junit参数化测试(不是类)
【发布时间】:2016-09-13 12:23:36
【问题描述】:

我有一个参数化的 junit 集成测试。它有 30 个输入(运行 30 个测试),每个需要 18 秒。

我想并行运行它们。

我正在从 gradle 运行它们,它们目前是用 jUnit4 编写的,但如果有帮助,我已经准备好切换到 jUnit5。

目前我可以使用 gradles maxParallelForks 但这只会分叉类。

【问题讨论】:

  • 在此响应中,它使用第三方库来执行此操作stackoverflow.com/questions/29312191/… 但也许它可以帮助您。
  • 谢谢提醒,我看过JUnit Toolbox。我希望有一个本地解决方案,尤其是 jUnit5 很快就会推出
  • 如您所述,Gradle 不支持方法级别的并行测试执行。因此,如果您希望在单个测试类中并行执行测试方法,则必须找到不使用 Gradle 原生测试支持的替代解决方案。
  • 关于 JUnit 5,目前不支持并行执行测试;但是,稍后有一个未解决的问题需要解决:github.com/junit-team/junit5/issues/60

标签: java gradle junit junit4 junit5


【解决方案1】:

该功能从 v 5.3 开始可用

使用以下内容创建 src/test/resources/junit-platform.properties

junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent

junit.jupiter.execution.parallel.mode.default 将并行运行同一类中的测试方法(包括参数化方法)。

还有一个junit.jupiter.execution.parallel.mode.classes.default 可以并行运行来自多个类的测试。查看jUnit 5 docs中的图片,看看2个属性的区别。

【讨论】:

  • 警告:并行测试执行是一项实验性功能
【解决方案2】:

JUnit 5 内置了对并行运行测试的支持。官方文档无疑是查看它的最佳来源: https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-parallel-execution

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多