无法在Junit-4.11中找到课程
我在我的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。 您可以点击这里下载。
- 删除我的
.zshrc
文件中的CLASSPATH
(如果你使用Bash
我认为它是.bashrc
) - 删除
/Library/Java/Extensions
的JUnit-4.11.jar
(或您使用的任何版本)以及您放入的任何系统目录。 - 尝试再次编译并运行它。
我将JAVA_HOME
为/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
谢谢。
更新 :原始海报的解决方案隐藏在下面的评论中。 它与/Library/Java/Extensions
没有junit jar文件,而没有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)
我建议从头开始重试
好的,我测试了同样的。 将提供相同的步骤:
/ | |--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)