我正在尝试从命令行运行单个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
我不知道为什么即使它存在于所述位置也无法找到该类。
答案 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