How To Automatically Retry Failed Tests in Nunit

If you have some randomly failing tests, such as Selenium driver based tests and are using Nunit as testing framework, here is one way to enable automatic re-run of the those failing tests. (Works with Nunit 3+ adding a custom method attribute)

Source: How To Automatically Retry Failed Tests in Nunit – Testing repository

Report tools for NUnit xml test report file

I have recently been doing custom Powershell script steps for Octopus deploy to trigger Selenium based UI tests and needed a good way to present the test outcome.

This command line tool creates a nice html dashboard page of the xml:

ReportUnit
https://github.com/reportunit/reportunit
Support for both NUnit 2.x, 3.x and MSTest

Interesting alternatives:

NUnit HTML Report Generator
https://github.com/SongArc/NUnit-HTML-Report-Generator/blob/master/README.md

NUnit Test Results Viewer
‘NUnit Test Results Viewer’ is a free open source project that allows to view NUnit resulted *xml file.
https://sourceforge.net/projects/nunittrviewer/

If tests are triggered from TeamCity or VSTS (Visual Studio Team Services) they have test report tools built-in.

.net – NUnit 3.2.1 + TeamCity: Could not load file or assembly ‘nunit.framework’ – Stack Overflow

21 down vote I had the same problem with TeamCity 10.0.1 (build 42078) and NUnit 3.4.1. And it turned out to be completely my fault. I’m posting it here as someone else can stumble into the same problem and this can save them some time. It turned out that the problem was in the “Run tests from: ” setting in my build configuration. I had **\*.Test.dll. That was accidentally picking up dlls for \obj\**\ directories (where there is no nunit.framework.dll present). Once I changed the setting to **\bin\%Bui

Source: .net – NUnit 3.2.1 + TeamCity: Could not load file or assembly ‘nunit.framework’ – Stack Overflow

ReportUnit – xml testresult to html dashboard tool

ReportUnit is a report generator for the test-runner family. It uses stock reports from NUnit, MSTest and Gallio and converts them into attractive HTML reports with dashboards.

Works with nUnit 3.x as well.

Nuget: https://www.nuget.org/packages/ReportUnit/

Github: https://github.com/reportunit/reportunit

Coypu supports browser automation in .Net to help make tests readable, robust, fast to write and less tightly coupled to the UI

Based on Selenium WebDriver:
https://github.com/featurist/coypu/blob/master/README.md

A robust wrapper for browser automation tools on .Net, such as Selenium WebDriver that eases automating ajax-heavy websites and reduces coupling to the HTML, CSS & JS

 

Force xUnit.net to run tests serially

Force to run tests in test projects serially; (for integration or ui type of tests)
Add this to the xunit test project app.config file:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
...
<add key="xunit.methodDisplay" value="method" />
<add key="xunit.parallelizeAssembly" value="false" />
<add key="xunit.parallelizeTestCollections" value="false" />
<add key="xunit.maxParallelThreads" value="1" />
...

docs:
https://xunit.github.io/docs/configuring-with-xml.html (.NET)
https://xunit.github.io/docs/configuring-with-json.html (.NET core)

 

 

C# .NET Selenium chromedriver.exe no disk in drive e: fix

If you get this alert message when debugging with the Selenium webdriver (v3.2) chromedriver (v2.27):

chromedriver.exe no disk
there is no disk in the drive. please insert a disk into drive e:

For me the problem was related to having an unmounted drive e: (open This PC window and check). If its not possible to unmount through windows right click menu, you can use this CMD: (run as administator):

mountvol e: /d

A simple bat file for this: (remember to run as Administrator):

@echo off
ECHO Must be runned as administrator to have access rights
mountvol e: /d
pause

 

Visual Studio – Trigger a xUnit test run after project build event

To trigger a xUnit test run after a successful build,
add this to the project “Build Events” / “Post-build event command line:”

"$(SolutionDir)\packages\xunit.runner.console.2.2.0\tools\xunit.console.x86.exe" "$(TargetPath)"

(You need xUnit runner console nuget package installed for this, above is for the 2.2.0 version).
Will produce something similar to this in the Output window “Build”:

 xUnit.net Console Runner (32-bit .NET 4.0.30319.42000)
 Discovering: MyApp.UnitTests 
 Discovered: MyApp.UnitTests 
 Starting: MyApp.UnitTests 
 Finished: MyApp.UnitTests 
=== TEST EXECUTION SUMMARY ===
 MyApp.UnitTests Total: 8, Errors: 0, Failed: 0, Skipped: 0, Time: 1,120s

Docs:
https://xunit.github.io/docs/getting-started-desktop.html#run-tests