2013-02-18 31 views
13

Thông điệp chính xác nhận được từ Jenkins là:Plugin Jenkins JUnit Test Result Report cho biết rằng tệp JUnit xml không được tìm thấy?

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

Khi cấu hình JUnit thử nghiệm Kết quả Báo cáo plugin, khi bước vào con đường 'Test Report XMLs' là '/reports/TEST-*.xml', các lỗi sau được hiển thị bên dưới đường dẫn:

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

Tôi đã thử sử dụng đường dẫn đầy đủ nhưng cũng tạo ra kết quả tương tự. Trong cả hai trường hợp, các đường dẫn đã chọn tệp 'TESTS-TestSuites.xml' đã có trong thư mục/reports.

Tôi không chắc liệu đây có phải là vấn đề với plugin hoặc tệp XML đang được tạo hay không. Tôi cũng biết rằng nó có thể là một vấn đề với kịch bản kiến ​​xây dựng mà tôi đã viết để chạy các kiểm tra JUnit và tạo ra tệp kết quả XML do đó tôi đã bao gồm các nội dung bên dưới trong trường hợp cần thay đổi:

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

Tôi đã nghiên cứu vấn đề này một thời gian và không tìm thấy giải pháp nào vì vậy tôi sẽ đánh giá cao bất kỳ trợ giúp nào. Cảm ơn.

+1

Bạn chạy các bài kiểm tra ít nhất một lần? Lỗi này xuất hiện khi định cấu hình plugin lần đầu tiên. – Jayan

+0

Vâng, các thử nghiệm chạy tốt và nói rằng việc xây dựng thành công. Nó chỉ cố gắng để tạo ra các báo cáo với các plugin gây ra việc xây dựng thất bại. – Ben

+0

@ Ben: Bạn có thể duyệt qua các tệp TEST * xml qua jenkins-> job-> workspace -> ... không? Nó sẽ cho một ý tưởng về mô hình thực sự cần thiết. Câu trả lời của Shiva Kumar đã có tác dụng. – Jayan

Trả lời

11

Jenkins tìm đường dẫn từ gốc không gian làm việc. Đảm bảo rằng đường dẫn đã cho là chính xác hoặc sử dụng các ký tự đại diện để tìm kiếm ở nhiều vị trí. Hãy thử sử dụng **/reports/TEST-*.xml Bạn có chắc là thư mục báo cáo nằm ngay dưới không gian làm việc không? Xác minh bằng tay nếu tệp kết quả thử nghiệm thực sự có mặt ở vị trí đã cho trong đường dẫn.

+0

Tôi đã sử dụng đường dẫn đó và nó đã loại bỏ lỗi đường dẫn ban đầu nhưng tôi vẫn gặp lỗi xml không tìm thấy khi chạy công việc. Có thể thư mục báo cáo ở sai vị trí. Hiện tại Jenkins chạy trên một máy chủ riêng biệt để kiểm tra. Thư mục báo cáo có phải trên máy chủ Jenkins và các báo cáo trong kịch bản kiến ​​chỉ vào đó không? – Ben

+0

Trên máy chủ cục bộ (không phải máy chủ jenkins) Tôi có thư mục cơ sở chứa thư mục src, bin và libs cho các bài kiểm tra JUnit của tôi cũng như tệp xml xây dựng kiến. Tệp build.xml làm cho thư mục đầu ra ($ {junit.output.dir}) cùng với các thư mục khác này khi nó chạy và sau đó thư mục báo cáo được tạo trong đó. Các thư mục jenkins hoàn toàn tách biệt trên máy chủ của riêng chúng. Tôi chỉ cần nhìn vào máy chủ jenkins và tôi có đường dẫn sau đến không gian làm việc của công việc:/var/lib/jenkins/jobs/jUnit Kiểm tra/không gian làm việc Nếu các báo cáo, kiểm thử và build.xml có được thay thế không? – Ben

+0

\ Khách hàng \ trang web \ phiên bản \ ben \ bao gồm \ fuel \ app \ tests \ selenium \ JenkinsTests \ output \ reports – Ben

1

Đối với dự án Android của tôi trong đó có nhiều hương vị sản phẩm Gradle tôi sử dụng đường dẫn sau để Test report XMLs:

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

JUnit plugin

Các vấn đề liên quan