2012-05-27 234 views
0

我想弄清楚如何设置一个项目使用蚂蚁。出于某种原因,我无法运行junit测试。我用蚂蚁建立了一个简单的虚拟项目,试图弄清楚这一点。它所拥有的只是一个单一的单元测试,应该通过微不足道。为什么不能正确运行我的单元测试?

我的项目结构看起来像这样。

. 
|-- build.xml 
|-- src 
`-- test 
    |-- foo 
    | `-- MainTest.java 
    `-- junit-4.10.jar 

MainTest.java看起来像这样。

package foo; 

import org.junit.*; 
import static org.junit.Assert.*; 

public class MainTest { 
    @Test 
    public void passes() { 
     System.out.println("It works!"); 
    } 
} 

这里是build.xml。

<project name="Nes" default="build" basedir="."> 
    <target name="build-test"> 
     <javac srcdir="test"> 
      <classpath> 
       <pathelement location="test/junit-4.10.jar" /> 
      </classpath> 
     </javac> 
    </target> 

    <target name="test" depends="build-test"> 
     <junit> 
      <classpath> 
       <pathelement location="test/junit-4.10.jar" /> 
      </classpath> 
      <batchtest> 
       <fileset dir="test" includes="foo/MainTest.class" /> 
      </batchtest> 
     </junit> 
    </target> 
</project> 

这是我从运行ant test得到的输出。

Buildfile: /home/hayden/dev/nes/build.xml 

build-test: 
    [javac] /home/hayden/dev/nes/build.xml:4: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 

test: 
    [junit] Test foo.MainTest FAILED 

BUILD SUCCESSFUL 
Total time: 0 seconds 

我运行蚂蚁1.8.2和Java 6

我在做什么错?

+0

虽然这是有帮助的,你贴了GitHub的链接,甚至更好的将是包括所有相关的代码/信息你的问题在这里堆栈溢出,因为然后这个网站上的问题和答案成为独立的,然后他们不依赖于外部信息来源,可能会或可能不会down/available/disappear /等。 –

+0

够公平的。已完成更改。 – haydenmuhl

回答

0

您需要为实际的.class文件添加一个路径,以便JUnit可以真正运行测试。既然你是完全合格的测试类的名称,则需要包括包含该foo包的目录:

<target name="test" depends="build-test"> 
    <junit> 
     <classpath> 
      <pathelement location="test/junit-4.10.jar" /> 
      <pathelement location="test" /> 
     </classpath> 

但我建议你改变javac任务不输出构建工件(即.class文件)与源文件放在同一个目录中。创建一个顶级“构建”目录并将所有构建输出放在那里。

你也应该通过增加includeantruntime属性来javac任务安静的第一个警告:

<javac srcdir="test" includeantruntime="false"> 
+0

我了解我违反的最佳做法。我只是试图让测试运行。我不知道我需要将编译的测试类包含在类路径中,因为我在'batchtest'元素中指定了一个到'MainTest.class'的路径。 – haydenmuhl

相关问题