Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including xunit-to-nunit with all npm packages installed. Try it out:

var xunitToNunit = require("xunit-to-nunit")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

xunit-to-nunit v0.4.0

Converts C# XUnit tests to NUnit tests


npm version circleci status Build Status Dependencies


Converts C# XUnit tests to NUnit tests.

Disclaimer: Far from perfect - something I used as a quick hack to convert loads of large tests


:package: Installation

npm install xunit-to-nunit



var x2n = require('xunit-to-nunit')

Convert test from string

var nunitTest = x2n.convertCode(xunitTest)

Convert test from file

x2n.convertFile('xunit-source-path.cs', 'nunit-destination-path.cs')

Convert tests from directory

x2n.convertFiles('xunit/source/directory', 'nunit/destination/directory')

This function calls convertFile for all files in the source directory.


convertFiles has a third (optional) parameter: options. This should be a dictionary value, containing all or any of the following parameters:

:wrench: recursive (default: false)

Set to true, this parameter will convert tests in all subdirectories including those at the source root. Directory structure is maintained at the conversion destination.

:wrench: verbose (default: true)

When true, the module logs an info message to the terminal when a file is converted. When a file conversion fails, a error log message is displayed regardless of the value of verbose.

For example,

var options = {
  recursive: true,
  verbose: false

x2n.convertFiles('xunit/source/directory', 'nunit/destination/directory', options)

Writing converted tests to source directory

When source = destination, '_NUnit' is appended to the filename. For example, where _destination = dir_, dir/SomeTests.cs is converted and the result is written to dir/SomeTests_NUnit.cs.

This behaviour can be changed with the following parameters:

:wrench: append (default: '_NUnit')

String to be appended to filenames when writing destination files to the source directory.

:wrench: overwrite (default: false)

If overwrite = true, append is ignored, and source files are overwritten at destination.

For example,

// Append destination filenames with `append` text
var options = {
  append: '_Test',
  overwrite: false // `overwrite` is false by default

// or, overwrite source files
var options = {
  overwrite: true

x2n.convertFiles('xunit/source/directory', 'nunit/destination/directory', options)


Feel free to add things / suggest things to be added by either opening an issue or by submitting a pull request.


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free