【发布时间】:2019-04-15 04:25:50
【问题描述】:
我有两组测试,一组需要在设置了 JVM -javaagent 的情况下运行,另一组需要取消设置。我正在使用Groups 在单独的 JVM 上运行,我可以看到两个 java 进程都启动了。使用jps -lvm,我可以看到没有使用-javaagent 标志运行的JVM。
build.sbt:
lazy val myProject = (project in file("."))
.settings(
resolvers ++= Build.resolvers,
libraryDependencies ++= Build.dependencies,
fork in Test := true,
testGrouping := groupByJavaAgent((definedTests in Test).value),
tags in test += Tags.ForkedTestGroup -> 4
)
val home = System.getProperty("user.home")
val jammForkOpts = ForkOptions()
.withRunJVMOptions(Vector(s"-javaagent:$home/.ivy2/cache/com.github.jbellis/jamm/jars/jamm-0.3.3.jar"))
def groupByJavaAgent(allTests: Seq[TestDefinition]) = allTests
.groupBy(t => if(t.name.contains("no javaagent")) ("NoJamm", ForkOptions())
else ("Jamm", jammForkOpts))
.map { case ((gName, opts), tests) => Group(gName, tests, SubProcess(opts)) }
.toSeq
sbt 1.2.8scala 2.12.8
【问题讨论】: