4

Apache POI プロジェクトのテストを実行しようとしていますが、次の例外が発生します。以前にも何度か見たことがありますが、毎回、JUnit が何を伝えようとしているのか完全にわからなくなってしまいます。

Javadoc には「フィルターがランナーからすべてのテストを削除するときにスローされる」と記載されていますが、これは Ant フィルターを意味するものではありません。JUnit 内でスローされるため、どのフィルターがここでテストを削除している可能性がありますか? このメッセージが表示される Ant ファイルをデバッグ/修正するにはどうすればよいですか?

test-main:
[junit] java.lang.NoClassDefFoundError: org/junit/runner/manipulation/NoTestsRemainException
[junit]     at java.lang.Class.getDeclaredMethods0(Native Method)
[junit]     at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
[junit]     at java.lang.Class.getMethod0(Class.java:2694)
[junit]     at java.lang.Class.getMethod(Class.java:1622)
[junit]     at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
[junit]     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
[junit] Caused by: java.lang.ClassNotFoundException: org.junit.runner.manipulation.NoTestsRemainException
[junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
[junit]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[junit]     at java.security.AccessController.doPrivileged(Native Method)
[junit]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
[junit]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
[junit]     ... 6 more
[junit] Exception in thread "main" 
[junit] java.io.FileNotFoundException: C:\workspaces\devtools\source\poi-trunk\junitvmwatcher937297744.properties (The system cannot find the file specified)
[junit]     at java.io.FileInputStream.open(Native Method)
[junit]     at java.io.FileInputStream.<init>(FileInputStream.java:138)
[junit]     at java.io.FileReader.<init>(FileReader.java:72)
[junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeAsForked(JUnitTask.java:1115)
[junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:896)
[junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:819)
[junit]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[junit]     at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
[junit]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[junit]     at java.lang.reflect.Method.invoke(Method.java:601)
[junit]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[junit]     at org.apache.tools.ant.Task.perform(Task.java:348)
[junit]     at org.apache.tools.ant.Target.execute(Target.java:357)
[junit]     at org.apache.tools.ant.Target.performTasks(Target.java:385)
[junit]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[junit]     at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[junit]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[junit]     at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[junit]     at org.apache.tools.ant.Main.runBuild(Main.java:758)
[junit]     at org.apache.tools.ant.Main.startAnt(Main.java:217)
[junit]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[junit]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
4

1 に答える 1

5

この問題をさらに掘り下げた後、これは古い JUnit で新しい Ant を実行することが原因であることがわかりました。この場合、JUnit 3.8.1 に対して Ant 1.7.1 および 1.8.2 でした。JUnit 4.10 にアップグレードすると問題が解決しました。

于 2013-05-16T12:52:31.133 に答える