无法在Junit-4.11中找到课程

我在我的Mac上配置了Junit-4.11,用javac编译没有错误,但是当我用java运行时,我Could 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.javaHelloWorldTest.java的当前目录中,我还把它放在/ Library / Java / Extensions中

我试图解决的是设置JAVA_HOMECLASSPATH ,但它没有用。

有人能指出出了什么问题吗? 我真的很困惑。

谢谢。

我通过以下步骤解决了我的问题。 我的Mac是Mac OSX 10.8,我使用的是Apple提供的JVM-1.6。 您可以点击这里下载。

  1. 删除我的.zshrc文件中的CLASSPATH (如果你使用Bash我认为它是.bashrc
  2. 删除/Library/Java/ExtensionsJUnit-4.11.jar (或您使用的任何版本)以及您放入的任何系统目录。
  3. 尝试再次编译并运行它。

我将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)