2012-11-12 16 views
10

Tôi cố gắng để sử dụng Jenkins xUnit plug-in cho dự án đơn vị kiểm tra Qt của tôi, nhưng tôi không thể làm cho nó hoạt ...Hiển thị kết quả của QTestlib với Jenkins xUnit plug-in

Dưới đây là những gì tôi đã thực hiện cho đến nay:

trước hết, tôi xây dựng dự án thử nghiệm đơn vị của tôi với qmakebuilder plug-in (cung cấp .pro để các plug-in qmakebuilder), sau đó tôi thêm một Execute Shell xây dựng phần nơi tôi lần đầu tiên rm -f các testResult xml tệp, sau đó, tôi chạy nhị phân thử nghiệm với -xunitxml cờ để có nó tạo ra các tập tin xml cho tôi Và tôi tên tập tin xml testResult.xml, nói cách khác:

rm -f /home/guest/QT/unitTest/testResult.xml 
cd /home/guest/QT/unitTest 
./tst_unittesttest -xunitxml > testResult.xml 

Cuối cùng trong hành động xây dựng bài đăng, tôi chọn Publish xUnit test result và chỉ định mẫu là *.xml.

Xây dựng công việc sẽ thất bại mặc dù, đây là sản phẩm mà tôi nhận được khi xây dựng công việc với Jenkins:

[xUnit] [INFO] - Starting to record. 
[xUnit] [INFO] - Processing QTestlib-Version N/A 
[xUnit] [INFO] - [QTestlib-Version N/A] - 1 test report file(s) were found with 
the pattern '*.xml' relative to '/home/guest/QT/unitTest' for the testing framework 
'QTestlib-Version N/A'. 
[xUnit] [ERROR] - The converted file for the result file '/home/guest/QT/unitTest 
/testResult.xml' (during conversion process for the metric 'QTestlib') is not 
valid. 
The report file has been skipped. 
[xUnit] [ERROR] - The plugin hasn't been performed correctly: hudson.util.IOException2: 
Failed to read /home/guest/QT/unitTest/generatedJUnitFiles/QTestlib/TEST--735044756.xml 
Build step 'Publish xUnit test result report' changed build result to FAILURE 
Build step 'Publish xUnit test result report' marked build as failure 
Finished: FAILURE 

Như bạn thấy có vấn đề chuyển đổi kết quả xét nghiệm tập tin xml của tôi với những gì xUnit plug- trong có thể đọc. tập tin testResult.xml của tôi trông như thế này:

<?xml version="1.0" encoding="UTF-8" ?> 
<testsuite errors="2" failures="0" tests="4" name="UnitTestTest"> 
    <properties> 
    <property value="4.7.4" name="QTestVersion"/> 
    <property value="4.7.4" name="QtVersion"/> 
    </properties> 
    <testcase result="pass" name="initTestCase"> 
    <!-- message="called before everything else" type="qdebug" --> 
    </testcase> 
    <testcase result="pass" name="myFirstTest"/> 
    <testcase result="pass" name="mySecondTest"/> 
    <testcase result="pass" name="cleanupTestCase"> 
    <!-- message="called after myFirstTest and mySecondTest" type="qdebug" --> 
    </testcase> 
    <system-err> 
<![CDATA[called before everything else]]> 
<![CDATA[called after myFirstTest and mySecondTest]]> 
    </system-err> 
</testsuite> 

nhưng TEST--735044756.xml là một dòng xml file: <?xml version="1.0" encoding="UTF-8"?>

Bất cứ ai cũng có một đầu mối, nơi tôi làm gì sai? Sẽ có vấn đề với việc tạo tệp xml đầu ra.

Trên một lưu ý khác nhau, tôi đã thêm thingi log trong hệ thống đăng nhập đơn Jenkins, nó dường như không thể là lý do cho vấn đề này mặc dù ... ít nhất IMO

Trả lời

9

Thi nhị phân thử nghiệm với -xml cờ sẽ chỉ hoạt động tốt. Sử dụng một cách kỳ lạ -xunitxml tạo tệp xml bị hỏng mà <testcase> của nó không có thuộc tính time. Chỉ chạy nhị phân thử nghiệm với -xml kết quả trong việc xây dựng công việc thành công.

+0

Tôi nghĩ nó phụ thuộc vào định dạng bạn chọn trong cấu hình của plugin xUnit. Định dạng "QTestLib-Version N/A" (được thêm vào trong phiên bản 1.50 của plugin) dự kiến ​​định dạng '-xml' của QTestLib. – Ignitor