从命令行运行JUnit测试时出错

时间:2011-11-18 09:18:34

标签: junit

我正在尝试从命令行运行单个JUnit测试但是我收到错误。 我可以成功编译JUnit测试,并在正确的位置创建类文件。 但是当我尝试使用以下命令运行它时:

C:\Program Files\Java\jdk1.7.0_01\bin>java org.junit.runner.JUnitCore C:\eclipse\eclipse-java-helios-SR1-win32\eclipse\JunitWS\SeleniumTraining\src\com\org\tests\Nav.class

我收到错误:

JUnit version 4.8.1
Could not find class: C:\eclipse\eclipse-java-helios-SR1-win32\eclipse\JunitWS\SeleniumTraining\src\com\org\tests\Nav.class
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDesc
ribbing

我不知道为什么即使它存在于所述位置也无法找到该类。

1 个答案:

答案 0 :(得分:2)

您需要在命令行上指定类的名称,而不是文件名:

java org.junit.runner.JUnitCore com.org.tests.Nav

来自JUnitCore的javadoc:

  

JUnitCore是运行测试的外观。它支持运行JUnit 4   测试,JUnit 3.8.x测试和混合。从命令运行测试   一行,运行 java org.junit.runner.JUnitCore TestClass1 TestClass2 ....   对于一次性测试运行,请使用静态方法runClasses(Class [])。如果   你想添加特殊的监听器,创建一个实例   org.junit.runner.JUnitCore首先使用它来运行测试。

并且您必须将bin目录(注意不是src)添加到命令行的类路径中。这可能看起来像:

java -cp C:\eclipse\eclipse-java-helios-SR1-win32\eclipse\JunitWS\SeleniumTraining\bin org.junit.runner.JUnitCore com.org.tests.Nav