2

我将我的应用程序从 Play 2.2.2 升级到了 2.3。我的应用程序运行良好。

有时会activator test给出以下输出:

[info] Loading project definition from /Users/myapp/project
[info] Set current project to myapp (in build file:/Users/myapp/)
[info] Compiling 23 Scala sources and 180 Java sources to /Users/myapp/target/scala-2.10/classes...
[info] Compiling 55 Java sources to /Users/myapp/target/scala-2.10/test-classes...
[success] Total time: 112 s, completed 24 juin 2014 17:53:06

就是这样......没有运行任何测试。如果我尝试运行testOnly,则找不到。

另外,即使我不更改任何文件,每次我尝试测试我的应用程序时,都会重新编译源代码。Play 2.2 并非如此。

我什至没有更多的日志要显示。当我尝试测试时,activator ui我有更多日志,但也没有运行任何测试。

如果我手动删除文件夹project/projectproject/targettarget,并运行命令activator test,每个测试类都会出现以下错误:

[error] Execution of test functional.actor.UserEditInformationTest failed: java.lang.ClassNotFoundException: functional.actor.UserEditInformationTest
[error]     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
[error]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[error]     at java.security.AccessController.doPrivileged(Native Method)
[error]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[error]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[error]     at com.novocode.junit.JUnitRunner$1.execute(JUnitRunner.java:120)
[error]     at sbt.ForkMain$Run$2.call(ForkMain.java:294)
[error]     at sbt.ForkMain$Run$2.call(ForkMain.java:284)
[error]     at java.util.concurrent.FutureTask.run(FutureTask.java:262)
[error]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[error]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[error]     at java.lang.Thread.run(Thread.java:744)
[info] functional.actor.UserEditInformationTest
[info] ! functional.actor.UserEditInformationTest
[error] sbt.ForkMain$ForkError: functional.actor.UserEditInformationTest
[error]     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
[error]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[error]     at java.security.AccessController.doPrivileged(Native Method)
[error]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[error]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

我该如何解决这个问题?

编辑 我的build.sbt文件:

name := "myapp"

version := "1.0.0"

scalaVersion := "2.10.4"

offline := true

// Play Core dependencies
libraryDependencies ++= Seq(
    javaJdbc,
    javaEbean,
    cache
)

// Specific dependencies
libraryDependencies ++= Seq(
    ...
)

lazy val root = (project in file(".")).enablePlugins(PlayJava)

jacoco.settings

parallelExecution in jacoco.Config := false

fork in Test := true

javaOptions in Test += "-Dconfig.file=conf/application.test.conf"

testOptions in jacoco.Config += Tests.Setup( () => System.setProperty("config.file", "conf/application.test.conf") )
4

2 回答 2

3

我在将应用程序从 Play 2.2.1 升级到 2.3.7 时遇到了同样的问题。不知何故,Eclipse 似乎在干扰。我个人的解决方案是退出 Eclipse,并最终退出激活控制台。然后我跑

 activator clean
 activator cleanFiles

然后

 activator test 

或者

 activator testOnly <package>.<testClass>

有时它在第一次尝试时不起作用。当激活器最终找到(并运行)测试时,一切正常,我可以再次打开激活器控制台和 Eclipse。

我希望这个能帮上忙...

更新

每次我写一个新的测试类,testOnly都找不到。我需要先运行组合clean-cleanFiles找到testOnly它(在这种情况下无需关闭 Eclipse)。

于 2015-02-13T13:43:11.650 回答
0

Play 2.3.1 已发布:https ://groups.google.com/forum/#!topic/play-framework/kz3iaBbPIwA

我升级了我的应用程序,现在一切似乎都正常了。我可以随心所欲地执行我的测试并且它们有效。

于 2014-06-25T14:00:56.683 回答