簡體   English   中英

僅當測試失敗時,如何使Ant junit任務顯示詳細信息?

[英]How to make Ant junit task show detail only if a test fails?

我的Ant junit任務當前設置為輸出最少的信息。 在控制台上,對於每個測試類,它會打印類名稱,運行,失敗和錯誤的測試數量以及每個測試的經過時間。 如果測試失敗,則還有另外一行表示測試失敗。

我想在控制台上獲得更多詳細信息,但是僅在測試失敗的情況下。 如果我按照建議像這樣 ,通過添加具有usefile額外的普通格式化=假,然后我得到了所有測試的額外多余的細節,即使通過了所有測試。 這包括打印執行的每個測試方法,以及每個測試類的冗余行。

有可能得到這個嗎?

我相信我已經實施了合理的解決方案。

解決方案的關鍵點是:*在單元測試完成后執行任務,僅在“ test.failed”下運行; *使用“ xmltask”任務庫來解析測試結果文件並發出簡潔的結果

為此,我編寫了以下目標:

<target name="show-unit-test-failures" if="test.failed">
    <taskdef if:set="xmltask.present" name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
    <echo if:set="xmltask.present" message="Unit test failure report details:"/>
    <xmltask if:set="xmltask.present">
        <fileset dir="gen/reports/artifacts/junit">
            <include name="TEST-*Test.xml"/>
        </fileset>
        <call path="//testcase[./error]">
            <parThatam name="className" path="@classname"/>
            <param name="methodName" path="@name"/>
            <param name="errorText" path="./error/text()"/>
            <actions>
                <echo>---------------------------------</echo>
                <echo>@{className}.@{methodName}:</echo>
                <echo>@{errorText}</echo>
            </actions>
        </call>
        <call path="//testcase[./failure]">
            <param name="className" path="@classname"/>
            <param name="methodName" path="@name"/>
            <param name="errorText" path="./failure/text()"/>
            <actions>
                <echo>---------------------------------</echo>
                <echo>@{className}.@{methodName}:</echo>
                <echo>@{errorText}</echo>
            </actions>
        </call>
    </xmltask>
</target>

請注意,如果“ xmltask.jar”文件不可用,我也會讓它“正常失敗”。 在任務中引用名稱空間的功能是Ant 1.9.1和更高版本中的一項新功能。

我將這個目標稱為“運行單元測試”目標的結尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM