我与(出于某种原因)只能使用一次,单个VM中使用的一些类的工作。 (如果我单独运行他们我的测试情况下工作fork := true
)在我的启用sbt
设置。
如果我运行这些测试的不止一个,他们无法与具有同一个线程执行拒绝一个任务(这很可能是封闭的)异常。 这将是非常耗时,找出是什么原因导致的问题,即使我发现这个问题,我可能没有能够解决它(我没有访问源代码)。
我目前使用的specs2
测试框架,但使用任何测试框架sbt
是可以接受的。
是否有任何测试框架sbt
是能够在运行的每个测试的jvm
叉?
可能的其他解决方案的想法或观念当然欢迎。
原来,这是很容易实现的。 该文件是充分的,可以在这里找到测试-测试分叉
// Define a method to group tests, in my case a single test per group
def singleTests(tests: Seq[TestDefinition]) =
tests map { test =>
new Group(
name = test.name,
tests = Seq(test),
runPolicy = SubProcess(javaOptions = Seq.empty[String]))
}
// Add the following to the `Project` settings
testGrouping in Test <<= definedTests in Test map singleTests
使用非过时的语法:
testGrouping in Test := (definedTests in Test).value map { test =>
Tests.Group(name = test.name, tests = Seq(test), runPolicy = Tests.SubProcess(
ForkOptions(
javaHome.value,
outputStrategy.value,
Nil,
Some(baseDirectory.value),
javaOptions.value,
connectInput.value,
envVars.value
)))
}