6

Junit テストケースを実行しようとすると、例外が発生します。クラスパスのエントリの順序を変更している場合、正常に動作していますが、Jococo カバレッジが機能していません。ハングしています。この問題を解決するのを手伝ってください。

<classpathentry kind="lib" path="libt/junit-4.8.2.jar"/>
<classpathentry kind="lib" path="lib/jmockit.jar"/>
java.lang.IllegalStateException: JMockit wasn't properly initialized; check that jmockit.jar precedes junit.jar in the classpath (if using JUnit; if not, check the documentation)
    at com.amica.bc.testutil.BillingCenterTestUtil$1.<init>(BillingCenterTestUtil.java:18)
at com.amica.bc.testutil.BillingCenterTestUtil.setCurrentUserName(BillingCenterTestUtil.java:18)
    at amica.util.logging.TestAmicaGWLogger.setUp(TestAmicaGWLogger.java:36)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
4

4 に答える 4

5

症状: Jmockit を使用して Maven を実行し、JUnit を Java プロジェクトに入れると、エラーが発生します。

メッセージ: JMockit が正しく初期化されていません。jmockit.jar がクラスパスで junit.jar の前にあることを確認します (JUnit を使用している場合、そうでない場合はドキュメントを確認してください)

原因:

POM.xml ファイルの設定が間違っています。Jmockit の依存関係は、junit の後です。

解決策:

POM.xml ファイルを編集します。jmockit.jar は junit.jar の前にある必要があり、jmockit の依存関係は junit の前にある必要があります。

于 2015-06-06T21:43:38.067 に答える
0

main私の場合の問題は、ソース フォルダーではなく、ソース フォルダーでテストが定義されていたことtestです。pom with scope テストで定義した jmockit と junit の依存関係。したがって、これらはこのテストには使用できませんでした。

IDE は編集とコンパイルの間はそれほど厳密ではなかったので、警告はまったくありませんでしたが、テストはこの同じ奇妙なエラーで失敗しました。

于 2015-01-13T13:38:01.013 に答える