2015-12-14 20 views
5

Chúng tôi đang chạy TestNG kiểm tra sử dụng Gradle trên Jenkins.Làm thế nào để thất bại Jenkins xây dựng nếu không có thử nghiệm đã được chạy?

cấu hình

công việc:
phần Build -> Gọi Gradle Script -> Sử dụng Gradle Wrapper -> Nhiệm vụ:

clean test -Dgroups=myTestNGTestGroupName 

Trong Jenkins điều khiển đầu ra tôi có thể nhìn thấy các bản ghi từ thực hiện gradlew.bat với các thông số cụ thể (một trong số đó là -Dgroups=myTestNGTestGroupName)).

Chúng tôi có khá nhiều công việc Jenkins và tự động hóa Selenium kiểm tra.
Vì điều đó trên cơ sở hàng ngày, chúng tôi chỉ kiểm tra các công việc thất bại.

Trong khi kiểm tra tái cấu trúc TestNG tên nhóm có thể bị thay đổi hoặc lỗi chính tả có thể xảy ra.
Nếu bạn đã thay đổi tên nhóm thử nghiệm trong kho kiểm tra và quên để cập nhật Jenkins công việc:
kiểm tra được thực hiện và công việc vẫn trôi qua (xây dựng thành công).

Làm cách nào tôi có thể yêu cầu Jenkins đánh dấu quá trình xây dựng là không thành công nếu không có thử nghiệm nào được thực thi?

Trả lời

2

TestNG tạo testng-results.xml tệp mỗi lần sau khi chạy thử
(ngay cả khi 0 kiểm tra được thực hiện).

Chúng tôi có thể phân tích tệp này. Giải pháp đơn giản nhất mà tôi tìm thấy là sử dụng Text-finder Plugin
(mà trong trường hợp của tôi đã được thêm vào Jenkins)

tôi thêm Jenkins Text Finder trong Post-build Actions như sau: text-finder-plugin

Làm thế nào nó trông giống trong Jenkins điều khiển bản ghi Output:

BUILD SUCCESSFUL 

Total time: 42.105 secs 
Build step 'Invoke Gradle script' changed build result to SUCCESS 
Archiving artifacts 
Checking <testng-results skipped="0" failed="0" total="0" passed="0"> 
c:\jenkins\workspace\my-job-name\build\reports\tests\testng-results.xml: 
<testng-results skipped="0" failed="0" total="0" passed="0"> 
Build step 'Jenkins Text Finder' changed build result to UNSTABLE 
... 
Finished: UNSTABLE 
Các vấn đề liên quan