2017-03-14 2 views
1

JunitParams 1.0.6にアップグレードした後、JunitParams 1.0.5で正常に動作しているテストがあります。その後、initializationErrorを取得しました。誰もこれで助けることができますか?JunitParams 1.0.6 initializationError

セレン:3.3.1 JunitParams:1.0.6 のFirefox:52ESR

スタックトレース:

java.lang.IllegalAccessError: tried to access method org.junit.runners.BlockJUnit4ClassRunner.validateFields(Ljava/util/List;)V from class junitparams.JUnitParamsRunner 
    at junitparams.JUnitParamsRunner.collectInitializationErrors(JUnitParamsRunner.java:405) 
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:336) 
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) 
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:56) 
    at junitparams.JUnitParamsRunner.<init>(JUnitParamsRunner.java:393) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31) 
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
+0

JUnitParamsのバグのようです。彼らのgithubの問題をチェックしましたか? https://github.com/Pragmatists/JUnitParams/issues –

+0

ありがとうございました。 JUnit 4.12にアップデートした後で動作します。私は混乱を避けるために質問を更新しました。 – Jingjing

答えて

1

これは、JUnitのバージョンの互換性の問題です。同様の場合はhttps://github.com/Pragmatists/JUnitParams/issues/102を参照してください。

JUnitParams 1.0.6には、JUnit 4.12が必要です。プロジェクトでこのバージョンをオーバーライドしていないことを確認してください。クラスパスにJUnit 4.10以前のバージョンがある場合、BlockJUnit4ClassRunner.validateFieldsメソッドはprivateアクセス修飾子を持ちます。これを呼び出すコードでは、JUnit 4.11以降ではprotectedとなります。古いJUnitバージョンでは、あなたが投稿したエラーが発生します。

+0

助けてくれてありがとう。あなたが正しいです、親プロジェクトは古いバージョンでオーバーライドしています。 JUnit 4.12にアップデートした後で動作します。 – Jingjing

+0

@ Jingjing喜んで助けてください。これで問題が解決した場合は、左側の大きな目盛りを使用して回答を承認済みとしてマークすることができます。 –

関連する問題