涉及 Play Framework 的TestServer
类的功能测试似乎只能在Play控制台中运行。
不幸的是,由play test
命令执行的Play控制台中的股票测试运行器按顺序执行测试 ,这需要花费很多时间。我认为如果并行执行它们会更快。
有没有办法并行运行测试?
更新:SBT支持在不同的JVM中并行运行测试,这使得在理论上如果它们在不同的端口上侦听时可以有多个TestServer
实例并行。 Play似乎忽略了这些设置。请参阅我报告的问题:https://github.com/playframework/Play20/issues/849。对于那些展示让Play Framework尊重这些SBT测试设置以使用Build.scala文件在不同JVM中并行运行基于junit的测试的方法的人来说,这是一个赏金。
答案 0 :(得分:1)
在对该主题进行调查后,似乎Play忽略了SBT测试配置设置。我在这里报告了这个问题:
https://github.com/playframework/Play20/issues/849
我不想标记我的答案,因为我希望我忽略了某些内容,并且可以在播放框架中并行运行测试。
答案 1 :(得分:0)
Play2的默认规格2设置不允许执行并行。 https://github.com/playframework/Play20/blob/master/framework/project/Build.scala#L290
parallelExecution in Test := false
因此,您需要在Build.scala中覆盖此设置。
parallelExecution in Test := true
但我认为你无法执行并行测试,因为TestServer
需要端口。如果要并行执行测试,则应在每个测试用例中更改端口。