4

Mac で Junit-4.11 を構成し、コンパイルでjavacエラーは発生しませんでしたが、で実行するとjavaCould not find class: HelloWorldTest

ここに私のHelloWorld.javaHelloWorldTest.java

import java.util.*;

public class HelloWorld {
    public String output() {
        return "Hello world!";
    }
}

import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.Test;
import java.util.*;
import org.junit.*;

public class HelloWorldTest {
    public HelloWorld helloworld = new HelloWorld();

    @BeforeClass
    public static void oneTimeSetUp() {
        System.out.println("@BeforeClass - oneTimeSetUp");
    }
    @AfterClass
    public static void oneTimeTearDown() {
        System.out.println("@AfterClass - oneTimeTearDown");
    }
    @Before
    public void setUp() {
        System.out.println("@Before - setUp");
    }
    @After
    public void tearDown() {
        System.out.println("@After - tearDown");
    }
    @Test
    public void testOutput() {
        assertEquals(helloworld.output(), "Hello world!");
        System.out.println("@Test - testOutput");
    }
}

そして、私は一緒に走ります

javac -classpath ./ HelloWorldTest.java

java -classpath ./ org.junit.runner.JUnitCore HelloWorldTest

私が得たものは

JUnit version 4.11
Could not find class: HelloWorldTest

Time: 0.002

OK (0 tests)

junit-4.11.jar現在のディレクトリにHelloWorld.javaandを配置HelloWorldTest.javaし、 /Library/Java/Extensions にも配置しました

私が解決しようとしたのは、 と を設定することですJAVA_HOMECLASSPATH、うまくいきませんでした。

誰かが何がうまくいかなかったのか指摘できますか? 私は本当に混乱しました。

ありがとうございました。

さて、次の手順で問題を解決しました。私の Mac は Mac OSX 10.8 で、Apple が提供する JVM-1.6 を使用しました。ここをクリックしてダウンロードできます。

  1. ファイル内の を削除しCLASSPATHます.zshrc(使用している場合は、Bashだと思います.bashrc)
  2. JUnit-4.11.jar(または使用している任意のバージョン)/Library/Java/Extensionsおよびそれを配置したシステム ディレクトリを削除します。
  3. もう一度コンパイルして実行してみてください。

そして、私は次のように設定JAVA_HOMEしました/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home

ありがとうございました。

4

2 に答える 2

10

更新:元のポスターの解決策は、以下のコメントに埋もれています。にjunit jarファイルがなく、次のものがないことに関係してい/Library/Java/ExtensionsますCLASSPATH

.zshrc ファイルの CLASSPATH を削除し、/Library/Java/Extensions と /Library/Java/Home/lib/ext の junit-4.11.jar も削除すると、JUnit-4.11 が機能しました。


一時ディレクトリ(質問のJavaファイル):

HelloWorld.java
HelloWorldTest.java
junit-4.11.jar
hamcrest-core-1.3.jar

それで:

  • javac -cp junit-4.11.jar *.java
  • java -cp junit-4.11.jar:hamcrest-core-1.3.jar:. org.junit.runner.JUnitCore HelloWorldTest

出力:

HelloWorldTest
JUnit version 4.11
@BeforeClass - oneTimeSetUp
.@Before - setUp
@Test - testOutput
@After - tearDown
@AfterClass - oneTimeTearDown

Time: 0,004

OK (1 test)

最初からやり直すことをお勧めします

于 2013-07-01T05:22:26.420 に答える
0

わかりました私は同じことをテストしました。同じ手順を提供します。

/
|
|--HelloWorld.java
|--HelloWorldTest.java

最初のプロセスHelloWorld.java :

javac HelloWorld.java

これにより、同じフォルダーに HelloWorld.class が作成されます。

次のプロセスHelloWorldTest.java :

javac -classpath C:\Himanshu_Work\repo\junit\junit\4.10\junit-4.10.jar;. HelloWorldTest.java

これにより、同じフォルダーにHelloWorldTest.classが作成されます。

java -classpath C:\Himanshu_Work\repo\junit\junit\4.10\junit-4.10.jar;. org.junit.runner.JUnitCore  HelloWorldTest
JUnit version 4.10
@BeforeClass - oneTimeSetUp
.@Before - setUp
@Test - testOutput
@After - tearDown
@AfterClass - oneTimeTearDown

Time: 0

OK (1 test)
于 2013-07-01T05:23:12.930 に答える