Running WiX Tests

Windows Installer XML

Running WiX Tests

There is a suite of tests that are included with WiX. They can be used to verify that changes to the toolset do not regress existing functionality.

Building the Tests

The tests will build as part of the normal WiX build. They have a dependency on Microsoft.VisualStudio.QualityTools.UnitTestFramework 9.0.0.0 assembly that ships with the following editions of Visual Studio:

  • Visual Studio 2008 Professional Edition
  • Visual Studio Team System 2008 Database Edition
  • Visual Studio Team System 2008 Development Edition
  • Visual Studio Team System 2008 Team Suite
  • Visual Studio Team System 2008 Test Edition

The build system searches the registry to detect if one of the above mentioned editions is installed on the machine. If the detection key cannot be found then the tests will not build from Nant but they can still be built by MSBuild if the required UnitTestFramework assembly exists.

The tests are built into an assembly called wixtests.dll to the same location as the other WiX binaries.

Building the tests using Nant

Nant must be run from the WiX root directory. To build only the tests, specify the 'wixtests' target.

c:\delivery\dev\wix>nant.exe wixtests

Building the tests in Visual Studio

Open c:\delivery\dev\wix\test\wixtests.sln from a WiX command window. The solution should build from within Visual Studio.

devenv.exe c:\delivery\dev\wix\test\wixtests.sln

Running the tests

The tests can be run from within Visual Studio or from the command line. Before the tests are run, the environment variable 'WIX_ROOT' must be set to the WiX root directory. It should be set if you are in a WiX command window, but if it is not:

set WIX_ROOT=c:\delivery\dev\wix

The WIX_ROOT environment variable requirement is used in many tests to locate test data.

Running the tests from the command line with MSTest.bat

There is a batch file, test.bat, which can be used to run the tests.

c:\delivery\dev\wix\test\test.bat [all|smoke|test name]

Running the tests from the command line with MSTest.exe

Run MSTest with the test binaries.

mstest.exe c:\delivery\Dev\wix\build\debug\x86\wixtests.dll

Running the tests from Visual Studio

Open wixtests.sln from a WiX command window.

devenv.exe c:\delivery\dev\wix\test\wixtests.sln

Run the tests from Visual Studio Test Manager.