我刚将JUnit文件夹放入/ System / Library / Java / Extensions /。我能够让JUnit运行,但是找不到我的测试类。
我正在从包的包含文件夹(/ containing_folder / package_name /)运行此命令(以及一些变体):
java org.junit.runner.JUnitCore package_name.ClassTest
但它告诉我:
JUnit version 4.10
Could not find class: package_name.ClassTest
我的系统信息: MacOS 10.7.2•Java 1.6.0_26•JUnit 4.10
附录: 我根据建议移动了JUnit并尝试使用以下bash脚本在我的测试类上运行JUnit,但我仍然收到相同的错误消息。
#!/bin/bash
export CLASSPATH=/Users/myname/Desktop/Programming/Java/junit4.10/junit-4.10.jar:/Users/myname/Desktop/Programming/Java/:/Users/myname/Desktop/Programming/Java/package_name.jar
java org.junit.runner.JUnitCore package_name.ClassTest
任何* nix或mac用户都会看到我做错了什么? 感谢。
P.S。不,“myname”,“ClassTest”和“package_name”不是我系统中使用的真实姓名 - 它们已被匿名化。
答案 0 :(得分:0)
Goood Morning,
诀窍(就像Dave Newton已经说过的那样)将Classpath设置为正确。在批处理文件中,它看起来像这样:
set CLASSPATH=D:\_zip\lib\junit.jar;D:\containing_folder
java org.junit.runner.JUnitCore package_name.ClassTest
这里重要的是在Classpath中包含以下内容:
这意味着您必须在类路径中设置包含类文件的文件夹(在我的示例中为 D:\ _ zip )。因此,您可以将完整的类名(包括包)设置为JUnitCore的参数。
这是一个很好的常见问题解答:http://junit.sourceforge.net/doc/faq/faq.htm#running_1
更新: 我不确定bash脚本和MacOS是如何工作的,但是如果你把你的类打包在一个JAR文件中,那就足够了在JAR文件的清单中设置CLASSPATH:
Manifest-Version: 1.0
Created-By: 1.6.0_26-b03 (Sun Microsystems Inc.)
Built-By: Gruber ^^
Implementation-Vendor: Company
Implementation-Title: Title
Implementation-Version: 1.0
Main-Class: package_name.ClassTest
Class-Path: /Users/myname/Desktop/Programming/Java/junit4.10/junit-4.10.jar
Main-Class 对于JUnit测试并不重要,但我把它留在了这里。清单文件在JAR中设置:
package_name.jar/META-INF/MANIFEST.MF
你可以手动设置它,或者Eclipse会为你设置它(导出到jar等),如果你使用它^^。
使用此Manifest集,脚本应如下所示(从与jar文件相同的目录调用):
set CLASSPATH=package_name.jar
java org.junit.runner.JUnitCore package_name.ClassTest
答案 1 :(得分:0)
您可以使用-cp
选项。
java -cp class_path_or_jar_separated_by_comma class_to_run