我在Mac上配置了Junit-4.11,使用javac
编译没有错误,但当我使用java
时,我得到了Could not find class: HelloWorldTest
这是我的HelloWorld.java
和HelloWorldTest.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.java
和HelloWorldTest.java
,我也把它放在/ Library / Java / Extensions
我尝试解决的问题是设置JAVA_HOME
和CLASSPATH
,但它不起作用。
有人可以指出出了什么问题吗?我真的很困惑。
三江源。
我已通过以下步骤解决了我的问题。我的Mac是Mac OSX 10.8,我使用Apple提供的JVM-1.6。您可以点击here。
下载CLASSPATH
文件中的.zshrc
(如果您使用的是Bash
我认为是.bashrc
)JUnit-4.11.jar
中的/Library/Java/Extensions
(或您使用的任何版本)以及您放入的任何系统目录。我将JAVA_HOME
设为/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
谢谢。
答案 0 :(得分:9)
更新:原始海报的解决方案隐藏在下面的评论中。这与/Library/Java/Extensions
中没有junit jar文件,而没有CLASSPATH
:
我在.zshrc文件中删除了CLASSPATH,我也删除了 junit-4.11.jar in / Library / Java / Extensions and / Library / Java / Home / lib / ext,然后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)
我建议从头开始重试
答案 1 :(得分: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)