我正在使用某些类(由于某种原因)只能在一个VM中使用一次。如果我在fork := true
设置中单独运行(sbt
),我的测试用例就会起作用。
如果我运行多个这些测试,它们会因为线程执行器拒绝任务而导致异常失败(很可能是关闭的)。找出导致问题的原因非常耗时,即使我发现问题,我也可能无法解决问题(我无法访问源代码)。
我目前正在使用specs2
测试框架,但使用sbt
的任何测试框架都是可以接受的。
sbt
是否有能够在jvm
分叉中运行每项测试的测试框架?
关于可能的其他解决方案的想法或想法当然是受欢迎的。
答案 0 :(得分:9)
事实证明这很容易实现。文档已经足够,可以在Testing - Forking tests
找到// 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
答案 1 :(得分:1)
使用不推荐使用的语法:
placeholder