2012-04-10 83 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