xUnit for Xamarin is dead, long live xUnit for Devices!
In conjunction with today's release of xUnit 2.0 RTM, I'm happy to announce the initial release of xUnit for Devices (GitHub | NuGet). This has been a long time coming and I'd like to thank Brad Wilson and James Newkirk for their tremendous efforts over the years.
xUnit for Devices started out as xUnit for Xamarin. Over the course of development however, it became apparent that what we really have is an MVVM-based test runner where the view was only an implementation detail. Current support is limited to platforms Xamarin Forms supports, but in the future it's pretty easy to add a desktop/WPF view and support any additional GUI platform as needed.
Upgrading your projects to RTM
If you've been using xUnit for Xamarin, the easiest way to update is by using NuGet. There's a final
xunit.runner.xamarin package that pulls in the new
xunit.runner.devices package. After upgrading, you can simply remove the old package and keep the dependencies. Windows Phone 8 users will need to make one additional change in the MainPage.xaml to update the assemly name from
For iOS and Android, create a new blank Xamarin app project to host the unit test runner. Make sure to give any capabilities/permissions you need in the appropriate manifest.
For WP8, create a new Unit Test Project and then remove the
Then for all platforms, install/update the
xunit.runner.devices package via the GUI or
Package Manager Console:
Then look for the
xaml.txt files that are the templates for your platform and copy/paste the contents into the app. Specifically,
- iOS: replace the contents of
- Android: replace the contents of
- WP8: replace the contents of