Why are no tests executed after migration from Play 2.2.2 to 2.3 with activator test?
我将我的应用程序从Play 2.2.2升级到了2.3。我的应用程序运行良好。
有时
1 2 3 4 5 | [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 |
就是这样...没有运行测试。如果我尝试运行
此外,即使我不更改任何文件,每次尝试测试应用程序时,都会重新编译源代码。 Play 2.2并非如此。
我什至没有更多要显示的日志。当我尝试使用
如果我手动删除文件夹
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [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) |
如何解决此问题?
编辑
我的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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") ) |
我在将应用程序从Play 2.2.1升级到2.3.7时遇到了同样的问题。 Eclipse似乎以某种方式在干扰。我个人的解决方案是退出Eclipse,最后也退出激活器控制台。然后我运行
1 2 | activator clean activator cleanFiles |
然后
1 | activator test |
或
1 | activator testOnly <package>.<testClass> |
有时它不起作用。最终,激活器找到(并运行)了测试,然后一切顺利进行,我可以再次打开激活器控制台和Eclipse。
我希望这会有所帮助...
更新
每次我编写一个新的测试类时,
Play 2.3.1已发布:https://groups.google.com/forum/#!topic/play-framework/kz3iaBbPIwA
我升级了我的应用,现在一切似乎都可以正常工作了。我可以根据需要多次执行测试,它们可以正常工作。