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.
Project rename
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 xunit.runner.xamarin
to xunit.runner.devices
.
Getting Started
The RTM 1.0 release is available on NuGet and on GitHub.
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 MSTestFramework
reference.
Then for all platforms, install/update the xunit.runner.devices
package via the GUI or Package Manager Console
:
Install-Package xunit.runner.devices
Then look for the .cs.txt
, xaml.txt
files that are the templates for your platform and copy/paste the contents into the app. Specifically,
– iOS: replace the contents of AppDelegate.cs
with AppDelegate.cs.txt
– Android: replace the contents of MainActivity.cs
with MainActivity.cs.txt
– WP8: replace the contents of MainPage.xaml.cs
with MainPage.xaml.cs.txt
and MainPage.xaml
with MainPage.xaml.txt
code
more code
~~~~