NUnit Framework Integration
NUnit is a unit-testing framework for all .NET languages. For more info on NUnit, see here.
The NUnit integration relies on the JUnit integration. We will explain how to generate a JUnit XML results file from NUnit so you can use the JUnit to push your results.
Writing NUnit tests
Here is an example. Consider a class named UnitTest.cs
:
using NUnit.Framework; namespace UnitTest { public class Tests { [SetUp] public void Setup() { } [Test] public void Substract() { double res = 10 - 10; Assert.AreEqual(res, 0); } [TestCase(2, 2, 4)] [TestCase(0, 5, 5)] public void Add(double a, double b, double c) { double res = a + b; Assert.AreEqual(res, c); } [Test] public void Divide() { double res = 10 / 5; Assert.AreEqual(res, 2); } } }
To summarize, the rules for matching a test method to a test case are: Try to match a test case by using the method's fully qualified name.
Uploading results to Zephyr Enterprise
Nunit report file does not support JUnitXml format, however, there is a way to convert NUnit3 results to JUnit-style results.
To instruct Nunit to execute the tests and generate the JUnit XML results file, it is required to execute nunit-console
like this:
nunit3-console.exe YourTestAssembly.dll --result=junit-results.xml;transform=nunit3-junit.xslt
The command line above will execute the tests and generate the JUnit XML results file junit-results.xml
. More information here.
Once the NUnit tests have been executed, the results can be uploaded to the Zephyr Scale. There are two options for uploading test results:
Once the Nunit Framework tests have been executed, the results can be uploaded to Zephyr Enterprise.
Using API we can upload the JUnit XML results file generated by Robot Framework.
Using Vortex Suite Automation containing JUnit XML results file generated by Robot Framework.
Using Vortex FolderWatcher file containing multiple JUnit XML results files generated by Robot Framework.
If the XML file Upload does not work, we could create a Custom template for the Robot Framework depending on the Junit XML output using the API.
Example Body of the Custom Template:-
{ "name": "nunit", "jsonTemplate": "[{\"statuses\":[{\"statusId\":\"2\",\"attachmentText\":\"\",\"statusString\":\"Failed\",\"status\":\"${TestRun.Results.UnitTestResult:outcome}\"},{\"default\":true,\"attachmentText\":\"Name: ${TestRun.Results.UnitTestResult:testName}\",\"statusId\":\"1\"}],\"skipTestcaseNames\":\"\",\"packageName\":\"\",\"testcase\":{\"name\":\"${TestRun.Results.UnitTestResult:testName}\"}}]" }