我写了几个Junit测试,当我尝试执行时,一些测试在初始化DBConnection时出现以下错误
[error] Caused by: java.lang.RuntimeException: There is no started application
[error] at scala.sys.package$.error(package.scala:27)
[error] at play.api.Play$$anonfun$current$1.apply(Play.scala:46)
[error] at play.api.Play$$anonfun$current$1.apply(Play.scala:46)
[error] at scala.Option.getOrElse(Option.scala:120)
[error] at play.api.Play$.current(Play.scala:46)
[error] at play.api.Play.current(Play.scala)
[error] at play.Play.application(Play.java:12)
[error] at DAO.DBManager.<init>(DBManager.java:35)
有趣的是,这些测试在构建机器和其他机器上成功执行。这应该是一些环境设置问题。 操作系统:Ubuntu12, 播放版本:2.1.0。
你能指导我一定有什么不对吗?
更新
有些测试使用假应用()而有些则没有。这导致了这个问题。如果我将fakeapplication()添加到所有测试中或从所有测试中删除它然后传递。
答案 0 :(得分:1)
我已经确定当我们混合使用普通junit测试和使用fakeapplication()
运行的测试时会出现问题。当我使用fakeapplication()
移动所有测试运行或将其移至普通junit测试而没有任何游戏的假应用程序时,测试运行没有问题。
但是在Windows机器中,测试通过而不管混合,这增加了混乱。
注意:您将无法使用简单的junit测试运行连接到DB的测试。