java - Play 框架 2.1 测试无法识别已启动的应用程序

标签 java junit playframework

我编写了一些 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, Play 版本:2.1.0。

你能告诉我哪里出了问题吗?

更新:

有些测试使用 fakeapplication(),有些则不使用。这是造成问题的原因。如果我将 fakeapplication() 添加到所有测试中或从所有测试中删除它,那么它就会通过。

最佳答案

我发现,当我们混合普通 junit 测试和使用 fakeapplication() 运行的测试时,就会出现问题。当我使用fakeapplication()移动所有测试运行或将其移动到普通的junit测试而不使用任何游戏的假应用程序时,测试运行没有问题。 但在 Windows 机器中,无论混合如何,测试都会通过,这增加了困惑。

注意:您将无法运行使用普通 junit 测试连接到数据库的测试。

关于java - Play 框架 2.1 测试无法识别已启动的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18702934/

相关文章:

java - F#,系统.IO.IOException : All pipe instances are busy

java.lang.NoClassDefFoundError : org/apache/commons/lang/Validate 错误

java - 如何选择使用 Maven 执行哪些 JUnit5 标签

java - 在 Java Spring Boot 中删除关系

scala - Play Framework Scala Hello-World 在 Ubuntu 20 上失败

java - 从同一 session 同时请求同一端点会在 Play 中产生问题

java - 如何从 junit-tests 中的 .properties 文件读取字符串?

java - 通过 XML DOM 中的字符串参数检索内容

Spring MVC 测试 : How do I check if a model attribute does not exist?

playframework - "Database ' 默认 ' is in inconsistent state!"来来去去