我有一个ant编译器,编译src...test
中的JUnit测试文件并将其复制到build/timex...com/visualpatterns/timex/test
(我已经写下了完整的路径名)。但是对我而言,我无法让JUnit运行这个东西。任何人都可以指向正确的方向(我在此浪费时间)?我CLASSPATH
似乎是确定(JUnit的运行),但它不能找到类文件...无法从命令行运行简单的JUnit4测试
$ echo $CLASSPATH
**.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\Program Files\junit4.8.2\junit-4.8.2.jar;C:\Program Files\junit4.8.2**
[email protected] /cygdrive/c/java/Code/Command_Line/Projects/timex
$ **java org.junit.runner.JUnitCore**
JUnit version 4.8.2
Time: 0.001
OK (0 tests)
[email protected] /cygdrive/c/java/Code/Command_Line/Projects/timex
$ **java -cp build/timex/WEB-INF/classes org.junit.runner.JUnitCore com.visualpatterns.timex.test.SimpleTest**
java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.junit.runner.JUnitCore. Program will exit.
Exception in thread "main"
/cygdrive/c/java/Code/Command_Line/Projects/timex/
------------------------------------------------------
**build/timex/WEB-INF/classes/com/visualpatterns/timex/test/***SimpleTest.class*
SimpleTest.java
package com.visualpatterns.timex.test;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
public class SimpleTest
{
int value1 = 2, value2 = 3, expectedResult = 5;
@Test
public void addSuccess()
{
assertTrue(value1 + value2 == expectedResult);
}
@Test
public void addFail()
{
assertTrue(value1 - value2 == expectedResult);
}
}
我使用了本书中的build.xml(敏捷Spring与Spring,Hibernate和Eclipse的Java开发) - 还没有真正了解Ant。我试图从头开始...也许我现在应该学习Ant。谢谢。 – user522034 2010-11-18 08:38:46
@ user511808:在这种情况下,我强烈建议使用恰当的开发环境(例如Eclipse/NetBeans/IntelliJ),而不是使用命令行进行摸索。 – skaffman 2010-11-18 08:42:37
尽管测试没有'main'方法,'JUnitCore'却有(参见http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html#main(java.lang.String .. ))。我同意如果您使用Ant来构建应该使用JUnit Ant任务的构建。 – NamshubWriter 2010-11-18 14:21:56