2016-08-03 3 views
0

У меня есть цель Ant, которая запускает тесты JUnit с <batchset>.Рассчитать общую сумму тестов JUnit, выполненных Ant

Во время работы, отображается следующее:

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.497 sec 

То, что я хочу, это общее количество тестов, выполненных из всех классов, вместе взятых. Есть ли простой способ сделать это?

ответ

1

Задача <junit> может выдавать результаты тестирования в виде XML-файлов. Эти файлы XML могут обрабатываться со свободной, сторонней библиотекой XmlTask.

Во-первых, под <junit>, добавьте <formatter type="xml" usefile="true"/>:

<junit> 
    <formatter type="xml" usefile="true"/> 
    <batchtest ... /> 
</junit> 

Затем <xmltask> можно использовать для объединения XML-файлы и вычислить суммы неудач и ошибок:

<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask" /> 

<!-- Create a buffer named "testsuiteNode" that holds the --> 
<!-- <testsuite> nodes from the JUnit reports. --> 
<xmltask> 
    <fileset includes="*.xml"/> 
    <copy path="/testsuite" append="true" buffer="testsuiteNode"/> 
</xmltask> 

<!-- Create an XML document containing a single element: <root/>. --> 
<!-- Then insert the <testsuite> nodes under <root/> --> 
<!-- Then calculate the sums of the various errors and failures. --> 
<!-- Finally, store the sums in various properties. --> 
<xmltask> 
    <insert path="/"><![CDATA[<root/>]]></insert> 
    <insert path="/root" buffer="testsuiteNode"/> 
    <copy path="sum(/root/testsuite/@errors)" property="test-errors-count"/> 
    <copy path="sum(/root/testsuite/@failures)" property="test-failures-count"/> 
    <copy path="sum(/root/testsuite/@errors | /root/testsuite/@failures)" 
     property="test-failures-and-errors-count"/> 
    <copy path="sum(/root/testsuite/@tests)" property="test-total-count"/> 
</xmltask> 

<echo>test-errors-count: ${test-errors-count}</echo> 
<echo>test-failures-count: ${test-failures-count}</echo> 
<echo>test-failures-and-errors-count: ${test-failures-and-errors-count}</echo> 
<echo>test-total-count: ${test-total-count}</echo> 

Пример вывода

[echo] test-errors-count: 1 
[echo] test-failures-count: 2 
[echo] test-failures-and-errors-count: 3 
[echo] test-total-count: 5 
Смежные вопросы