1. ホーム
  2. java

[解決済み] JUnitテスト実行時のClass Not Found Exceptionについて

2022-07-14 15:39:22

質問

EclipseでJUnitのテストを実行すると、このエラーが発生します。

Class not found com.myproject.server.MyTest
java.lang.ClassNotFoundException: com.myproject.server.MyTest
    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:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

を追加してみました。 JUnit をクラスパスに追加してみましたが、mavenを使用しており、JUnitライブラリはPOMの依存関係にあります。

私はすでにプロジェクトをクリーンアップし、EclipseのJUnitプラグインを使用して新しいJUnitテストケースを作成しようとしましたが、まだ同じエラーが発生します。

どのように解決するのですか?

を使用すると、ソースコードだけがコンパイルされるため、この現象が発生するようです。 mvn clean compile を使用したときに、ソースコードだけがコンパイルされるために発生するようです (maven 3.1.0 を使用しているので、常にこのように動作していたかどうかはわかりません)。

もし、あなたが mvn test を実行すると、テストコードもコンパイルされますが、その後にテストが実行されます (Eclipseを通して実行しようとしている場合、すぐに望ましいとは言えないかもしれません)。これを回避する方法は test-compile を Maven のコマンドシーケンスに追加することです。 mvn clean . たとえば、次のように実行します。 mvn clean compile test-compile .