2013-02-18 11 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 

、「/reports/TEST-*.xml」と「テストレポートXMLS」パスを入力することで、次のエラーがJUnitテスト結果報告プラグインを設定する場合パスの下に表示されます。

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

私は同様に完全なパスを使用して試してみましたが、それは同じ結果を生成します。どちらの場合も、パスは/ reportsディレクトリにある 'TESTS-TestSuites.xml'ファイルを選択しているはずです。

私は、これはプラグインや、生成されたXMLファイルに問題があるかどうかはわかりません。何かを変更する必要がある場合には、私はまた、私はJUnitテストを実行するように書かれているAntビルドスクリプトで問題になるとXML結果ファイルを生成できることを承知しているので、私は以下のこの内容が含まれている:

<?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

+0

ええ、テストは正常に実行され、ビルドが成功したと言います。プラグインでレポートを生成しようとしても、ビルドが失敗するだけです。 – Ben

+0

@ Ben:jenkins-> job-> workspace - > ...でTEST * xmlファイルを参照できますか?実際にどのパターンが本当に必要なのかを知ることができます。 Shiva Kumarの答えが働いたはずです。 – Jayan

答えて

11

Jenkinsは、ワークスペースルートからパスを探します。指定されたパスが正しいことを確認するか、ワイルドカードを使用して複数の場所を表示します。試してみてください**/reports/TEST-*.xml レポートフォルダは作業領域のすぐ下にありますか?テスト結果ファイルがパスに指定された場所に実際に存在するかどうかを手動で確認します。私はTest report XMLsために次のパスを使用し、複数のGradle製品の風味を持っている私のアンドロイドプロジェクトのために

+0

私はそのパスを使用しましたが、初期パスエラーを取り除きましたが、ジョブ実行時にxmlが見つかりません。たぶん、レポートフォルダが間違った場所にあります。現在、Jenkinsはテストとは別のサーバー上で動作します。レポートフォルダはJenkinsサーバー上になければならず、Antスクリプトのレポートはそこを指していますか? – Ben

+0

ローカルサーバー(jenkinsサーバーではありません)に、私のJUnitテスト用のsrc、binおよびlibsディレクトリとantビルドxmlファイルを含むベースディレクトリがあります。 build.xmlファイルは、出力ディレクトリ($ {junit.output.dir})を実行するときにこれらの他のディレクトリの横に作成し、その中でreportsディレクトリが作成されます。 jenkinsディレクトリは、それぞれのサーバー上で完全に分離されています。 jenkinsサーバーを見て、ジョブのワークスペースへのパスは/ var/lib/jenkins/jobs/jUnit Test/workspace 代わりにレポート、テスト、build.xmlをここに入れる必要がありますか? – Ben

+0

¥Clients¥website¥versions¥ben¥includes¥fuel¥app¥tests¥selenium¥JenkinsTests¥output¥reports – Ben

1

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

JUnit plugin

関連する問題