2011-11-07 32 views
0

我刚将JUnit文件夹放入/ System/Library/Java/Extensions /中。我能够让JUnit运行,但它找不到我的测试类。JUnit找不到类:package_name.class

我从包中(/ 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

你是如何设置类路径的?我假设你输入'package_name'时,它只是你真实包名的占位符? –

+1

不要在扩展文件夹中放置任何东西,除非您非常确信这是正确的做法。它通常是**错误的**方法来使课程可用。 *非常少的事情实际需要(而且应该)去那里。 –

回答

0

Goood上午,

诀窍是(像戴夫牛顿已经说过)设置CLASSPATH权利。在一个批处理文件,它应该是这样的:

set CLASSPATH=D:\_zip\lib\junit.jar;D:\containing_folder 
java org.junit.runner.JUnitCore package_name.ClassTest 

这里最重要的是要有以下的事情在你的类路径:

  • JUnit类文件
  • 类文件,包括您的JUnit测试类
  • 库类文件取决于

这意味着你必须设置包含类路径中的类文件文件夹(在我的示例中为D:\ _ zip)。因此,您可以将完整的类名(包括包)设置为JUnitCore的参数。

一个很好的常见问题是在这里:http://junit.sourceforge.net/doc/faq/faq.htm#running_1


更新:我不知道怎么bash脚本UND MacOS的工作,但如果你有你的类包装在一个JAR文件,这将是足够的,设置CLASSPATH中的JAR文件清单内:

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-类对于JUnit测试并不重要,但我把它留在了这里。清单文件中设置JAR内:

package_name.jar/META-INF/MANIFEST.MF 

您可以手动设置或Eclipse将设置为你(出口罐子等),如果你使用它^^。

有了这个清单中设置,脚本应该是这样的(来自同一目录的jar文件叫):

set CLASSPATH=package_name.jar 
java org.junit.runner.JUnitCore package_name.ClassTest 
+0

感谢您的链接。我写了一个bash脚本来做这样的事情(由于在Mac上使用了不同的语法),但我无法获得任何地方。有任何想法吗? 我编辑了我的问题以添加脚本信息。 – Ellipsoid

+0

我为JAR文件添加了工作清单文件条目。这在我的Win7系统上适用于我。我不确定bash脚本是否正确,这些条目是用冒号分隔的? ...无论如何,告诉我,如果这工作^^ – Gruber

0

可以使用-cp选项。

java -cp class_path_or_jar_separated_by_comma class_to_run