2016-07-15 15 views
-3

私はintellijのアイデアで実行するプロジェクト用のユニットテストをいくつか持っています。私はJava 7を使用する場合、テストは正常に動作しますが、Javaを7から8に変更すると、このエラースタックトレースがすべてのユニットテストで取得されます。JUNIT4はJava 8では動作しません

java.lang.IllegalArgumentException 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

この問題の根本原因は何ですか。

UPDATE - テストクラスとヘッダーのインポートを追加します。

import junit.framework.TestCase; 
import mockit.Expectations; 
import mockit.NonStrictExpectations; 
import mockit.Mocked; 

public class PrepareModule extends TestCase { 
+1

JUNITに問題がありません。それはintellijにあります – Jens

+0

いくつかのコードを追加してください。 – cssGEEK

+0

IntelliJの最新バージョンを使用していますか? – Tom

答えて

0

はあなたがのJUnit 4を使用していると言うが、あなたのコードスニペットが含まれています:

import junit.framework.TestCase; 

public class PrepareModule extends TestCase { 
} 

これはテストのJUnitの3スタイルを使用している

はこのようにそれを試してみてください。

import org.junit.Test; 

public class PrepareModule { 
    @Test 
    public void someTest() { 
    } 
} 
+0

同じエラーが表示されます。 –

+1

JUnit 3の依存関係を確認して削除できますか?この答えのアプローチは正しいと思われます。 – vikingsteve

0

OK、witあなたのスタックトレースを見ている時間、新鮮な目:

  • java.lang
  • sun.reflect
  • com.intellij

この:

java.lang.IllegalArgumentException 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

が、これは、私だけからパッケージをスタック全体表示されていると仮定すると、 JUnitは何もしていないと私に伝えます問題と一緒に。おそらく問題は、一番上のクラスにあるスタックの(または下の方):com.intellij.junit4.JUnit4IdeaTestRunner

可能な場合は、異なるのJUnitランナーを試してみてくださいなfrom command lineなど:

java org.junit.runner.JUnitCore <test class name> 
0

どのバージョンあなたはJMockItを使用していますか?いくつかの旧バージョンのJMockItはJava 8と互換性がありません。

私のテストではTestCaseを拡張していなかった点を除いて、ほとんど同じ問題がありました。私はJMockIt 1.0 - > 1.14をアップグレードすることで問題を解決しました。

0

私はこの問題がIDEAによって導入されたと思います。

+0

これは質問に対する答えを提供しません。十分な[評判](http://stackoverflow.com/help/whats-reputation)があれば、どの投稿でも[コメント](http://stackoverflow.com/help/privileges/comment)できるようになります。また、これを確認してください(代わりに何ができますか?)(https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reationation-to-comment-what-c​​an-i-do-instead )。 – thewaywewere

関連する問題