无法在Junit-4.11中找到课程

时间:2013-07-01 05:05:33

标签: java junit

我在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。您可以点击here

下载
  1. 删除CLASSPATH文件中的.zshrc(如果您使用的是Bash我认为是.bashrc
  2. 删除JUnit-4.11.jar中的/Library/Java/Extensions(或您使用的任何版本)以及您放入的任何系统目录。
  3. 再次尝试编译并运行它。
  4. 我将JAVA_HOME设为/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home

    谢谢。

2 个答案:

答案 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)