xUnit.net Runners for Devices
Clone or download


These runners enable xUnit.net tests to run on iOS and Android devices with Xamarin and on any UWP device.

The xUnit.net Device Runners are a sub-project of xUnit.net under the .NET Foundation. It is licensed under the Apache 2 license, which is approved by the OSI.

For status updates to these runners, follow @onovotny on Twitter
For status updates on xUnit.net, follow @xunit, @jamesnewkirk, @bradwilson

The xUnit.net logo was designed by Nathan Young.

How to get started

xUnit.net supports both .NET Standard and platform specific projects for iOS and Android. Unit tests for Xamarin have two main components, which may reside in the same assembly.

  1. Assemblies containing tests: install the latest xUnit 2.1 package. Install-Package xUnit
  2. App for running the tests on a device or simulator: install the xUnit for Devices runner package. Install-Package xUnit.Runner.Devices

The runner package adds a starting AppDelegate (for iOS), MainActivity (for Android) or MainPage.xaml (UWP) that you should use instead of the one generated by the new project template. Unit tests in the application itself will be picked up automatically. Referenced assemblies that contain tests need to be manually specified as described in the sample code.

Platform support

  • Xamarin.Android
  • Xamarin.iOS
  • UWP (Windows 10)

This is a work-in-progress

Basic functionality works -- tests are discoverable and runnable. There is a lot of room for improvements in each of the runner apps. Pull Requests are very welcome. One main requirement -- the runner assemblies should be self-contained; they should not pull in additional non-xunit libraries (except Xamarin.Forms).


  • Getting data back from runner to listening agent (remote)
  • trait display/filters
  • UI polish