0

我刚开始使用 JUnit。我通过 Intelij IDEA 运行了我的测试,一切都很好,但是当我尝试使用以下代码在终端中运行我的测试时:

java -cp /junit4.10/junit-4.10.jar:. /Users/maidini/IdeaProjects/HelloWorld/test/CalculatePriceTest.java

我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: /Users/maidini/IdeaProjects/HelloWorld/test/CalculatePriceTest/java
Caused by: java.lang.ClassNotFoundException: .Users.maidini.IdeaProjects.HelloWorld.test.CalculatePriceTest.java
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

您知道我应该怎么做才能在终端中成功运行我的测试吗?我也在使用 Mac Lion。

4

1 回答 1

4

您首先必须使用javac;编译您的代码。在您的类路径上加载.java源文件将不起作用。请记住添加您的单元测试类和您正在测试的实际类。以及他们可能拥有的任何依赖项。也许您也想将它们捆绑在一个.jar文件中,这样您的命令行就不会太长。此外,每次更改代码或测试时不要忘记重新编译。

这很快就会变得多毛。相反,我建议您使用构建工具,例如Maven。通过正确的 Maven 构建,您只需键入mvn test,Maven 将为您处理依赖关系、编译和运行测试。

如果您不想使用 Maven,还可以查看Ant(最好与Ivy结合使用)、Gradle或任何其他 Java 构建工具。

于 2012-07-17T09:28:41.607 回答