4

JUnit 4 テストを実行しようとすると、Eclipse で NullPointerException が発生します。JUnit3 でも動作します。

私は次のテストクラスを試しています:

import static org.junit.Assert.fail;
import org.junit.Test;

public class Test {

    @Test
    public void test() {
        fail("Not yet implemented");
    }

}

例外スタック トレースは次のとおりです。

java.lang.NullPointerException
    at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.localURL(JUnitLaunchConfigurationDelegate.java:420)
    at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.entryString(JUnitLaunchConfigurationDelegate.java:409)
    at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.addEntry(JUnitLaunchConfigurationDelegate.java:396)
    at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.localizeClasspath(JUnitLaunchConfigurationDelegate.java:387)
    at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.getClasspath(JUnitLaunchConfigurationDelegate.java:364)
    at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.launch(JUnitLaunchConfigurationDelegate.java:147)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:855)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:704)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1047)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1251)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

OS X Snow Leopard と Java SDK 1.6.0_35 (Apple 製) を使用しています。JDK と JUnit 4 の両方が私のビルド パスにあります。Java バージョンが問題と関係がありますか?

アップデート:

わかりました、私はこれを考えていないばかです。C++ で何かをしなければならなかったので、Eclipse for C/C++ Developers をインストールしました。しかし、同じインスタンスを使用して、Android SDK プラグインを使用して Android 用に開発し、いくつかの小さな Java アプリケーションを作成しました。しかし、Java Development Tools も Java EE Developer Tools もインストールしていませんでした。それらをインストールしたところ、JUnit 4 が動作するようになりました。

このツールの 1 つが JUnit 4 に使用されていると思います。JUnit 3 が機能したのは奇妙です。とにかくそれは今動作します。

皆様のサポートに感謝します。

4

6 に答える 6

10

わかりました、私はこれを考えていないばかです。C++ で何かをしなければならなかったので、Eclipse for C/C++ Developers をインストールしました。しかし、同じインスタンスを使用して、Android SDK プラグインを使用して Android 用に開発し、いくつかの小さな Java アプリケーションを作成しました。しかし、Java Development Tools も Java EE Developer Tools もインストールしていませんでした。それらをインストールしたところ、JUnit 4 が動作するようになりました。

于 2012-11-15T09:48:36.993 に答える
1

同じ問題があります。アップグレードの問題のため、ADT をバージョンから 22.3 から 23 に再インストールします。新しいバージョンの ADT では「Java 開発ツール」が除外されているようです。

詳細は、「ヘルプ」→「バージョン情報」→「インストールの詳細」で確認できます。

そこで、Eclipse の既存の Juno アップグレード サイトを使用して JDT (Juno - http://download.eclipse.org/releases/juno ) をインストールすると、正常に動作します。

于 2014-08-27T05:07:17.927 に答える
0

インポート org.junit.Test がクラス名と競合しています。クラス Test の名前を ATest などに変更すると、次のようになります。

java.lang.AssertionError: Not yet implemented
    at org.junit.Assert.fail(Assert.java:91)
    at ATest.test(ATest.java:8)

別のオプションは、テストをパッケージに入れることです(デフォルトのパッケージを使用しないため)

ソースコード:

import static org.junit.Assert.fail;
import org.junit.Test;

public class ATest {

    @Test
    public void test() {
        fail("Not yet implemented");
    }

}

Max OS 10.8.0 上の Eclipse Juno でテスト済み

java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-10M3811)
Java HotSpot(TM) Client VM (build 20.10-b01-428, mixed mode)

これはライオンでも機能すると確信しています。

于 2012-10-16T16:09:20.780 に答える