2014-04-23 1 views
0

현재 SBT 및 Play를 사용하여 프로젝트를 수행 중입니다.SBT - Test.Setup throw java.lang.ClassNotFoundException

데이터베이스를 회전시키고 테스트 시간을 단축하기 위해 ONCE 만 재생하고 싶습니다.

SBT는 Tests.SetupTests.Cleanup을 제공합니다. 나는이 프로그램을 실행할 때

play.Project(name = appName, applicationVersion = appVersion, dependencies = appDependencies) 
    .settings(
     // snip .. wiring resolvers and template/routes imports here 
     testOptions in Test += Tests.Argument("junitxml", "console"), 
     testOptions in Test += Tests.Setup(_.loadClass("util.TestServer$").getMethod("start").invoke(null)), 
     testOptions in Test += Tests.Cleanup(_.loadClass("util.TestServer$").getMethod("stop").invoke(null)), 
     scalacOptions += "-feature", 
     doc in Compile

그러나, 그것에 대해 불평 : http://www.scala-sbt.org/0.12.4/docs/Detailed-Topics/Testing.html

나는이 인쇄 내가 SBT의 설정에를 연결하도록하려면 test/util/TestServer.scala

object TestServer { 
    def start = println("hello") 
}

에서 다음 개체를 정의한 TestServer 클래스를 찾지 못했습니다.

$ sh play.sh test 
[info] Loading project definition from /Users/markdejong/Projects/malmberg-baps/project 
[info] Set current project to Malmberg (in build file:/Users/markdejong/Projects/malmberg-baps/) 
[info] Updating {file:/Users/markdejong/Projects/malmberg-baps/}core... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Updating {file:/Users/markdejong/Projects/malmberg-baps/}macros... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0 
[info] No tests to run for core/test:test 
[info] Done updating. 
[info] Updating {file:/Users/markdejong/Projects/malmberg-baps/}Malmberg... 
[info] Resolving org.apache.httpcomponents#httpclient;4.2 ... 
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0 
[info] No tests to run for macros/test:test 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
java.lang.ClassNotFoundException: util.TestServer$ 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at ApplicationBuild$$anonfun$6$$anonfun$apply$10.apply(Build.scala:89) 
    at ApplicationBuild$$anonfun$6$$anonfun$apply$10.apply(Build.scala:89) 
    at sbt.ForkTests$$anonfun$sbt$ForkTests$$all$1$1.apply(ForkTests.scala:20) 
    at sbt.ForkTests$$anonfun$sbt$ForkTests$$all$1$1.apply(ForkTests.scala:20) 
    at sbt.std.TaskExtra$$anon$1$$anonfun$fork$1$$anonfun$apply$1.apply(TaskExtra.scala:99) 
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:45) 
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:45) 
    at sbt.std.Transform$$anon$4.work(System.scala:64) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) 
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) 
    at sbt.Execute.work(Execute.scala:244) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) 
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) 
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
[error] (Malmberg/test:executeTests) java.lang.ClassNotFoundException: util.TestServer$ 
[error] Total time: 11 s, completed Apr 23, 2014 7:11:07 PM

여기 문제가 있니?

나는 util.TestServer 및 util.TestServer $ class도 시도했지만 동일한 오류가 발생합니다.

SBT 버전 0.13.0을 사용하고 내가 문제를 발견 켄지 요시다에 2.2.2

+0

play2 및 sbt의 버전은 무엇입니까? –

+0

http://stackoverflow.com/questions/16346140/sbt-doesnt-call-test-setup-on-a-play2-project –

+0

sbt 0.13.0 및 Play 2.2.2 사용 –

답변

1

감사를 재생합니다.

사실 Play 프레임 워크에서 소개 한 "포크"모드였습니다. 이러한 버전에서 작동하게하려면 false로 설정해야합니다.

관련 문제