GHPReporter / Ghpr.nunit
Projects that are alternatives of or similar to Ghpr.nunit
Some Links:
Core |
MSTest |
MSTestV2 |
NUnit |
SpecFlow |
Console |
Site Repo
Ghpr.NUnit
Usage:
NUnit 3 Console
With installed- Check you have the latest version installed
- Download the latest version of Ghpr.NUnit (using NuGet)
- Add relative path to
Ghpr.NUnit.dll
from build folder of your tests (example: addins/../../../Users/Evgeniy_Kosjakov/Documents/GitHub/Ghpr.NUnit.Examples/build/Ghpr.NUnit.dll) intonunit.bundle.addins
file (file located in [nunit_console_location]/addins). Also make sure that your build contains such libraries and files asGhpr.Core.dll
,Ghpr.NUnit.dll
,Ghpr.LocalFileSystem.dll
,Ghpr.NUnit.Settings.json
andNewtonsoft.Json.dll
: - Run your tests via NUnit Console
With NUnit 3 ConsoleRunner NuGet package
- Check you have the latest NuGet package installed
- Download the latest version of Ghpr.NUnit (using NuGet)
- Add relative path to
Ghpr.NUnit.dll
located in your build folder intonunit.nuget.addins
in tools directory of NUnit.ConsoleRunner.3.10.0. Also make sure that your build contains such libraries and files asGhpr.Core.dll
,Ghpr.NUnit.dll
,Ghpr.LocalFileSystem.dll
,Ghpr.NUnit.Settings.json
andNewtonsoft.Json.dll
. - Run your tests via NUnit Console Runner
How to publish the report in Jenkins
Please, read this 'How to publish the report in Jenkins'
instruction.
How to work with screenshots
If you want to add screenshots to your report, you need to implement your own method of taking screenshot as byte[]
. This is needed because there is no way to take screenshot which will work on any testing framework or CI tool (such as Jenkins or TeamCity). If you are using WebDriver, you can take screenshot using WebDriver. Also NUnit attachments are supported.
[Test]
public void TestMethod()
{
var bytes = TakeScreenshot(); //your implementation
//all you need to do is to pass byte[] to ScreenHelper:
ScreenHelper.SaveScreenshot(bytes);
}
If you want to be able to take screenshots for failed tests, you can take a look at this approach:
[TearDown]
public void TakeScreenIfFailed()
{
var res = TestContext.CurrentContext.Result.Outcome;
if (res.Equals(ResultState.Failure) || res.Equals(ResultState.Error))
{
ScreenHelper.SaveScreenshot(TakeScreenshot());
}
}
Demo Report
You can view Demo report on our site
View report locally
Please read Core instructions or this comment about opening report in Chrome
Contributing
Anyone contributing is welcome. Write issues, create pull requests.
Release notes
You can find it here for all packages.