2012-04-10 82 views
0

目前我想在Jenkins获得测试结果。我正在处理的唯一问题是我可以从我的Junit测试中获取XML报告。所以我的问题是:用Ant生成XML报告,但如何?

  1. 是否有可能与Jenkins开始测试并获得结果?

  2. 或者是否有可能用Ant生成XML报告,以及如何?因为我有这个但100%不明白:

路径我的测试:

  • NL \企业\ CMS \插件\测试\ AllTests.java(测试套件)
  • CopyOfMyTestClass.java(单测试类)
  • MyTestClass.java(单测试类)

路径到我的图书馆:

  • 的lib \的JUnit 4.10.jar
  • 的lib \的ant.jar(这一个是我的插件必要的,可能也有必要构建XML报告?)

此代码我从获得JUnit的网站:http://junit.sourceforge.net/doc/faq/faq.htm#running_6


我了解以下内容: 您希望您的测试报告 ${classes}${test.reports} =位置=的bin目录中.java文件已经构建到.class文件中。是否有可能将它们转发到.java文件?

但我不知道如何处理以下操作:

<classpath refid="test.classpath" /> 

谢谢了!

更新

他发现我的3个testclasses和他建立一个报告,但我在报告中得到同样的错误在这三个类别:

test.AllTests

java.lang.ClassNotFoundException: test.AllTests 
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) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:169) 

这是我的build.xml代码:

<property name="basedir" value="C:/CMSdot2"/> 
<property name="classes" value="C:/CMSdot2/dotCMS/WEB-INF/classes/nl/company/dotcms/plugin"/> 
<property name="test.reports" value="${basedir}/dotCMS/"/> 
<target name="test-html"> 
<junit fork="yes" printsummary="no" haltonfailure="no"> 
    <batchtest fork="yes" todir="${test.reports}" > 
    <fileset dir="${classes}"> 
    <include name="**/*Test*.class" /> 
    </fileset> 
    </batchtest> 
    <formatter type="xml" /> 
    <classpath id="test.classpath"> 
    <pathelement location="lib/junit-4.10.jar"/> 
    </classpath> 
</junit> 
<junitreport todir="${test.reports}"> 
    <fileset dir="${test.reports}"> 
    <include name="TEST-*.xml" /> 
    </fileset> 
    <report todir="${test.reports}" /> 
</junitreport> 
</target> 

回答

1
  1. 您必须指定${classes}指向类。 Java需要类来执行程序/ junit,所以.java文件不会。
  2. 如果您有运行测试所需的外部库(如log4j或apache commons),则需要<classpath refid="test.classpath" />来包含您的类和任何外部库。例如:

    <classpath id="test.classpath"> 
        <pathelement location="${classes}" /> 
        <pathelement location="lib/ther.jar"/> 
    </classpath> 
    
+0

我越来越接近它。他找到了测试课程并且他做了一个报告。但是在报告中他说:java.lang.ClassNotFoundException我已经更新了第一篇文章 – Gynnad 2012-04-10 09:16:35

+0

是你的包testen.AllTests还是test.AllTests?似乎与我想的类dir有一些混淆。 – oers 2012-04-10 09:33:40

+0

它是包测试,而不是测试因此,他去测试是正确的。所有测试。我在第一篇文章中改变了它! – Gynnad 2012-04-10 09:47:04