java - sbt:在单个 JVM 中并行执行测试类
问题描述
我将 JUnit 4/5 与 sbt(版本 1.4.7)一起使用,我想在每个单独的 JVM 中并行运行测试类。
例子:
(Running) (Waiting Tests like a queue)
[JVM 1: TestClass1] <------ [TestClass4, TestClass5, ...]
[JVM 2: TestClass2]
[JVM 3: TestClass3]
我想要以下行为:一旦任何测试类执行完成,它将等待测试类分派到空闲的 JVM。
我已经尝试了以下 sbt 配置,但它不会像我预期的那样工作:
fork in Test := true
concurrentRestrictions in Test := Seq(
Tags.limit(Tags.ForkedTestGroup, 4)
)
import Tests._
{
def groupByFirst(tests: Seq[TestDefinition]) =
tests groupBy (_.name(0)) map {
case (letter, tests) =>
val options = ForkOptions().withRunJVMOptions(Vector("-Dfirst.letter"+letter))
new Group(letter.toString, tests, SubProcess(options))
} toSeq
Test / testGrouping := groupByFirst( (Test / definedTests).value )
}
有什么办法可以满足这个吗?
解决方案
推荐阅读
- python - 安装要求时 pip msgpack 错误
- java - 使用 Action 类,在 ClickAndHold 之后,如何进入两步底部菜单选项并单击?
- php - symfony 中的类别树问题
- swift - 用户重新打开应用程序时如何更新按钮状态?(斯威夫特 5)
- c# - C#:列表填充了类的相同实例而不是新实例
- java - 如何在java中将字符串插入字符串数组?
- json - 如何将具有日期作为属性的json数据转换为飞镖
- python-3.x - 随机游走算法如何将灰度图像变为 3D?
- python - Python 3如何为try编写单元测试,除了模块中的外部函数
- ios - 显示底部单元格时如何动画 UITableView 向上滑动?