ash*_*ies 2 java macos junit classpath
我正在尝试运行junit4.7附带的样本测试并遇到一些困难.
java是尊重我的CLASSPATH:
me@dinosaurhunter ~/Desktop> export CLASSPATH=
me@dinosaurhunter ~/Desktop> echo $CLASSPATH
me@dinosaurhunter ~/Desktop> java junit.textui.TestRunner junit.samples.AllTests
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/TestRunner
me@dinosaurhunter ~/Desktop> source /etc/profile
me@dinosaurhunter ~/Desktop> echo $CLASSPATH
:/Library/Java/Extensions/junit/:/Library/Java/Extensions/junit/junit.jar
me@dinosaurhunter ~/Desktop> java junit.textui.TestRunner junit.samples.AllTests
Exception in thread "main" java.lang.NoClassDefFoundError: junit/framework/Test
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at junit.runner.BaseTestRunner.loadSuiteClass(BaseTestRunner.java:207)
at junit.runner.BaseTestRunner.getTest(BaseTestRunner.java:100)
at junit.textui.TestRunner.start(TestRunner.java:179)
at junit.textui.TestRunner.main(TestRunner.java:138)
Run Code Online (Sandbox Code Playgroud)
但正如你所看到的,它无法找到junit/framework/Test......我看着/Library/Java/Extensions/junit/junit.jar它,但它包括在内.
/Library/Java/Extensions/junit/junit.jar是一个符号链接.这样可以吗?
好的,我刚刚下载了JUnit 4.7,解压缩了zip文件,将目录更改为该文件夹并成功运行以下命令:
$ java -cp .:junit-4.7.jar junit.textui.TestRunner junit.samples.AllTests
.........................................
.........................................
.........................................
.......
Time: 3.255
OK (130 tests)Run Code Online (Sandbox Code Playgroud)
那是在OSX上.
我想在你的例子中,你的类路径有点搞砸了.试试这个:
.:/Library/Java/Extensions/junit:/Library/Java/Extensions/junit/junit.jarRun Code Online (Sandbox Code Playgroud)
看到差异?我添加了.(当前目录),我从junit目录中删除了尾部斜杠.
更新:我刚用符号链接进行测试,看起来也有效:
$ ln -s junit-4.7.jar junit.jar
$ java -cp .:junit.jar junit.textui.TestRunner junit.samples.AllTests
.........................................
.........................................
.........................................
.......
Time: 2.569
OK (130 tests)
Run Code Online (Sandbox Code Playgroud)
尝试将junit JAR文件直接放入Extensions目录,而不是为其创建子目录.我刚刚将junit-4.6.jar复制到/ Library/Java/Extenstions目录并执行了TestRunner类,没有任何问题
% java junit.textui.TestRunner Usage: TestRunner [-wait] testCaseName, where name is the name of the TestCase class
从Extensions目录中删除库会导致预期的异常
Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/TestRunner
| 归档时间: |
|
| 查看次数: |
5821 次 |
| 最近记录: |