Java play框架的并行测试运行程序

Java play框架的并行测试运行程序,java,junit,sbt,playframework-2.1,test-runner,Java,Junit,Sbt,Playframework 2.1,Test Runner,涉及Play框架的TestServer类的功能测试似乎只在Play控制台中工作 不幸的是,Play控制台中的stock test runner由Play test命令执行,它按顺序执行测试,这需要很多时间。我认为如果并行执行,它们会运行得更快 有没有办法并行运行测试 更新:SBT支持在不同JVM中并行运行测试,理论上,如果多个TestServer实例正在侦听不同的端口,则可以使它们并行运行。似乎Play忽略了这些设置。请参阅我报告的问题:。奖励对象是这样一个人:他展示了一种方法,使Play框架尊

涉及Play框架的
TestServer
类的功能测试似乎只在Play控制台中工作

不幸的是,Play控制台中的stock test runner由
Play test
命令执行,它按顺序执行测试,这需要很多时间。我认为如果并行执行,它们会运行得更快

有没有办法并行运行测试


更新:SBT支持在不同JVM中并行运行测试,理论上,如果多个
TestServer
实例正在侦听不同的端口,则可以使它们并行运行。似乎Play忽略了这些设置。请参阅我报告的问题:。奖励对象是这样一个人:他展示了一种方法,使Play框架尊重这些SBT测试设置,使用Build.scala文件在不同JVM中并行运行基于junit的测试。

Play2的默认specs2设置不允许并行执行。

因此,您需要在Build.scala中覆盖此设置

 parallelExecution in Test := true

但我认为您不能并行执行测试,因为
TestServer
需要端口。如果您想并行执行测试,您应该在每个测试用例中更改端口

在调查该主题后,Play似乎忽略了SBT测试配置设置。我在这里报告了这个问题:


我不想将我的答案标记为接受,因为我希望我忽略了一些东西,并且可以在play框架中并行运行测试。

我添加了这样的设置,但似乎没有效果:val main=play.Project(appName、appVersion、appDependencies)。设置(测试中的并行执行:=true)此提交还表明运行多个测试服务器比冲突端口有更多问题:
fork-in-test:=true
将解决并行运行多个TestServer实例的问题。(假设端口分配已经解决)问题是play似乎忽略了我的设置,定义如下:
val main=play.Project(…)。设置([settings here])
即使是可以并行运行的非常简单的测试,也不会并行执行,无论测试中的
parallelExecution:=true
设置如何。
 parallelExecution in Test := true