Skip to main content
Skip table of contents

xUnit XML report

About xUnit

image-20241209-050113.png

xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework. Written by the original inventor of NUnit v2, xUnit.net is the latest technology for unit testing.

Common structure

In a basic xUnit report, you should find common tags depicting test suites and test cases.

xUnit report example
XML
<assemblies>
  <assembly name="MyApp.Tests" total="5" passed="3" failed="1" skipped="1" time="0.534" errors="0">
    <collection name="MyApp.Tests.CalculatorTests" total="5" passed="3" failed="1" skipped="1" time="0.534">
      <test name="CalculatorTests.Addition_ValidNumbers_ReturnsSum" type="CalculatorTests" method="Addition_ValidNumbers_ReturnsSum" result="Pass" time="0.002" />
      <test name="CalculatorTests.Subtraction_ValidNumbers_ReturnsDifference" type="CalculatorTests" method="Subtraction_ValidNumbers_ReturnsDifference" result="Pass" time="0.003" />
      <test name="CalculatorTests.Division_ByZero_ThrowsException" type="CalculatorTests" method="Division_ByZero_ThrowsException" result="Fail" time="0.001">
        <failure exception-type="System.DivideByZeroException">
          <message>Attempted to divide by zero.</message>
          <stack-trace>
            at MyApp.Calculator.Divide(Int32 x, Int32 y) in C:\MyApp\Calculator.cs:line 42
            at MyApp.Tests.CalculatorTests.Division_ByZero_ThrowsException() in C:\MyApp.Tests\CalculatorTests.cs:line 25
          </stack-trace>
        </failure>
      </test>
      <test name="CalculatorTests.Multiplication_ValidNumbers_ReturnsProduct" type="CalculatorTests" method="Multiplication_ValidNumbers_ReturnsProduct" result="Pass" time="0.001" />
      <test name="CalculatorTests.FeatureNotImplemented_Skipped" type="CalculatorTests" method="FeatureNotImplemented_Skipped" result="Skip" time="0.000">
        <reason>This feature is not implemented yet.</reason>
      </test>
    </collection>
  </assembly>
</assemblies>

To visualize the structure more clearly, let’s take a look at the diagram below.

image (4)-20241210-072935.png

xUnit test report structure diagram

How AgileTest would parse an xUnit report

In AgileTest, all test cases imported using the automation feature are categorized as Generic Tests.

Imported test cases are distinguished by the type and method attributes of the <test> element, following the format: type + ‘.' + method. After parsing, this information appears as the Test Definition in AgileTest and can be found just below the Description area of the test case ticket. The Summary of each test case issue is based on the value of the method attribute.

Test run status tag

Description

<pass>, <passed> or no tag

PASSED → Test case yields the expected result.

<fail>, <failed>, or <error>

FAILED → Test case returns the actual result not as expected.

<blocked>

BLOCKED → Test case is considered blocked due to a specific reason.

<skipped>

SKIPPED → Test case is skipped in the test run.

<retest>

RETEST → Test case should be rerun again.

<query>

QUERY → The test case requires more details to have the final result.

<todo>, <to do>, or non-defined statuses

TODO → Test case is not yet run. It’s the default status of every Test case in AgileTest.

The priority of status tags in AgileTest is as follows:

failed > blocked > retest > skipped > query > passed (or no tag).

If multiple tags are added to a single <test> element, the tag with the highest priority will be used as the test status in AgileTest.

Test result with attachments

AgileTest supports two customized structures for integrating attachments into your test reports. Users can choose either option to upload test results along with evidence files.

1. Attachment element with name attribute and content inside

Element structure
XML
<attachment name="filename"> base64 content </attachment>
Example
XML
<test>
  <attachments>
    <attachment name="test.png">iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAQ0lEQVR42u3PQREAAAgDINc/9Mzg14MGZNrOAxERERERERERERERERERERERERERERERERERERERERERERERERERuVh9TJWdbWjzsQAAAABJRU5ErkJggg==</attachment>
  <attachments>
<test>

2. Attachment element with separate name and content elements inside

Element structure
XML
<attachment> 
  <name> filename </name>
  <rawcontent> base64 content </rawcontent>
</attachment>
Example
XML
<test>
  ...
  <attachments>
    <attachment> 
      <name>test.png</name>
      <rawcontent>iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAQ0lEQVR42u3PQREAAAgDINc/9Mzg14MGZNrOAxERERERERERERERERERERERERERERERERERERERERERERERERERuVh9TJWdbWjzsQAAAABJRU5ErkJggg==</rawcontent>
    </attachment>
  </attachments>
</test>

Should you need any assistance or further AgileTest inquiries, please contact us here!

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.