2013-02-18 267 views
13

從詹金斯接收的確切的消息是:Jenkins JUnit測試結果報告插件聲明JUnit xml文件未找到?

No test report files were found. Configuration error? 
Build step 'Publish JUnit test result report' changed build result to FAILURE 

在配置JUnit測試結果報告插件,在進入「測試報告個XML」路徑「/reports/TEST-*.xml」,下面的錯誤顯示在路徑下:

'/reports/TEST-*.xml' doesn't match anything: '' exists but not '/reports/TEST-*.xml' 

我已經嘗試使用完整路徑以及但產生相同的結果。在這兩種情況下,路徑都應該選取/ reports目錄中的'TESTS-TestSuites.xml'文件。

我不確定這是否是插件或生成的XML文件的問題。我也知道這可能是我編寫的用於運行JUnit測試並生成XML結果文件的ant構建腳本的問題,因此我在下面的內容中包含了這些內容以防萬一需要更改:

<?xml version="1.0" encoding="utf-8"?> 
<project name="jenkins-tests" basedir="." default="linux"> 

<property name="junit.output.dir" value="output"/> 
<property name="src.dir" value="src"/> 
<property name="lib.dir" value="libs" /> 
<property name="bin.dir" value="bin" /> 
<property name="full-compile" value="true" /> 

<path id="classpath.base"/> 

<path id="classpath.test"> 
    <pathelement location="${bin.dir}" /> 
    <pathelement location="${src.dir}" /> 
    <pathelement location="${lib.dir}" /> 
    <pathelement location="${lib.dir}/junit.jar" /> 
    <path refid="classpath.base" /> 
</path> 

<target name="clean" description="Clean up build artefacts"> 
    <delete dir="${basedir}/${junit.output.dir}" /> 
</target> 

<target name="prepare" depends="clean" description="Prepare for build"> 
    <mkdir dir="${basedir}/${junit.output.dir}" /> 
    <mkdir dir="${junit.output.dir}/reports"/> 
</target> 

<target name="compile" depends="prepare"> 
    <javac srcdir="${src.dir}" destdir="${bin.dir}" verbose="${full-compile}" includeAntRuntime="false" > 
     <classpath refid="classpath.test"/> 
    </javac> 
</target> 

<target name="test" depends="compile"> 
    <junit printsummary="true" haltonfailure="false"> 
     <formatter type="xml" usefile="true"/> 
     <classpath refid="classpath.test" /> 
     <batchtest fork="yes" todir="${junit.output.dir}"> 
      <fileset dir="${src.dir}"> 
       <include name="*.java"/> 
      </fileset> 
     </batchtest> 
    </junit> 
</target> 

<target name="test-reports" depends="test"> 
    <junitreport tofile="TESTS-TestSuites.xml" todir="${junit.output.dir}/reports"> 
     <fileset dir="${junit.output.dir}"> 
      <include name="TEST-*.xml" /> 
     </fileset> 
     <report format="frames" todir="${junit.output.dir}/reports" /> 
    </junitreport> 
</target> 
</project> 

我一直在研究這個問題一段時間了,並沒有找到任何解決方案,所以我會很感激任何幫助。謝謝。

+1

你運行測試至少一次?第一次配置插件時會出現此錯誤。 – Jayan 2013-02-18 16:40:57

+0

是的,測試運行良好,並說構建成功。它只是試圖用插件生成報告,導致構建失敗。 – Ben 2013-02-18 17:26:29

+0

@ Ben:你可以通過jenkins-> job-> workspace - > ...瀏覽到TEST * xml文件嗎?它會給出一個想法,真正需要什麼樣的模式。希瓦庫馬爾的答案應該是有效的。 – Jayan 2013-02-19 08:36:55

回答

11

Jenkins從工作空間根目錄查找路徑。確保給定路徑正確或使用通配符在多個位置查找。嘗試使用**/reports/TEST-*.xml 您確定報告文件夾在工作區下正確嗎?如果測試結果文件確實存在於路徑中指定的位置,請手動進行驗證。

+0

我已經使用該路徑,它已經擺脫了初始路徑錯誤,但運行作業時仍然出現xml not found錯誤。也許報告文件夾在錯誤的地方。目前Jenkins在單獨的服務器上運行測試。報告文件夾是否必須位於Jenkins服務器上,並且螞蟻腳本中的報告指向那裏? – Ben 2013-02-18 11:26:16

+0

在本地服務器(不是詹金斯服務器)上,我有基本目錄,其中包含我的JUnit測試的src,bin和libs目錄以及ant build xml文件。 build.xml文件在運行時將輸出目錄($ {junit.output.dir})與這些其他目錄放在一起,然後在那裏生成reports目錄。 jenkins目錄在他們自己的服務器上完全獨立。我只看了一下jenkins服務器,並且具有以下路徑到作業工作區:/ var/lib/jenkins/jobs/jUnit測試/工作區 報告,測試和build.xml應該在這裏嗎? – Ben 2013-02-18 12:09:20

+0

\ Clients \ website \ versions \ ben \ includes \ fuel \ app \ tests \ selenium \ JenkinsTests \ output \ reports – Ben 2013-02-18 12:45:26

1

對於我的Android項目,有我用於Test report XMLs以下路徑多搖籃產品口味:

**/build/test-results/**/TEST-*.xml 

JUnit plugin

相關問題