WP7 CI is a port of the Silverlight Toolkit Test Framework with added CI support, allowing tests to be run in the emulator from the command lineNOTE:
WP7-CI 1.1 (now with Mango support!) has a breaking change with 1.0 in that the MSBuild task is now called "Test" instead of "RunUnitTests". See the download page
for a complete changelist.
Don't have NuGet? A manual installation package is now available. Read the readme.txt!
If you have NuGet, simply add the WP7-CI package from NuGet, which will do the following:
- Add references to the Microsoft.Silverlight.Testing and Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight assemblies that ship with the package (removing existing references if they exist)
- Add an MSBuild task called "Test" to the project that can be called from the command line (it's configured by default to fail build if the tests fail)
- Add a TestsPage.xaml and set it as the startup page (you're free to remove this file)
- Add a SampleTest.cs which contains three tests (one pass, one fail, one error)
You can then run the tests:
- In Visual Studio by setting the tests project as startup and hitting F5
- At the command line by running msbuild against the project and setting the target to "Test" (it will automatically build your project if required)
The log will be written to TestResult.trx in the same directory as the XAML output. See Build Properties
for properties that you can override at the command line.
If your CI server is run by a windows service, you will need to enable "Allow service to interact with desktop" in the service's "Logon" options.
- MSBuild task for executing tests in the WP7 OS from the command line
- Updated Microsoft.Silverlight.Testing assembly that enables service-callback support for WP7
Project Lifespan and Scope
This project will be terminated once there is official support for running in-emulator unit tests in a CI environment. Bug fixes and features will be limited to the automation of running unit tests on the WP7 operating system.
- The emulator is not closed after execution completes