我有一个应用程序,其中每个测试都应该在VM中运行,其配置已经由特定于测试的System属性(可以仅基于测试类名称)进行调整。
像那种这样的东西:
test {
forkEvery 1
maxParallelForks Runtime.runtime.availableProcessors()
beforeSuite { TestDescriptor descriptor ->
systemProperty( 'test.class.name', descriptor.getClassName() )
}
}
但它不太有用。分叉的JVM看到的名称确实发生了变化,但它们并不是我所期望的,我怀疑它们甚至都不具有确定性。似乎有一个共享JavaForkOptions
项,并且对beforeSuite
的调用不是与该套件的进程分支相关联的确定性和排他性方式,因此进程得到的名称可能与“{”beforeSuite
来电中设置的匹配不匹配。
有没有更好的方法来执行此操作,或者某种方式来更精确地控制分叉过程,以便可以在特定于fork的数据结构上设置系统属性?
感谢您的帮助!