aboutsummaryrefslogtreecommitdiff
path: root/src/test/msi/README.md
blob: f4c42029ef15658d84a1b91a957b2aa18ffebe22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# integration

This layer is for building installers, and then executing xunit tests that run them and verify that they worked.

## Running tests

The main focus of these tests is to validate behavior in a real environment.
Depending on who you talk to, these are integration or system-level or end-to-end (E2E) tests.
They modify machine state so it's strongly recommended *not* to run these tests on your dev box.
They should be run on a VM instead, where you can easily roll back.

1. Run build.cmd to build everything (the tests will not automatically run).
1. Copy the build\IntegrationMsi\Debug\net6.0-windows folder to your VM.
1. Open an elevated command prompt and navigate to the net6.0-windows folder.
1. Run the runtests.cmd file to run the tests.

You can modify the runtests.cmd to run specific tests.
For example, the following line runs only the specified test:

> dotnet test --filter WixToolsetTest.BurnE2E.BasicFunctionalityTests.CanInstallAndUninstallSimpleBundle_x86_wixstdba WixToolsetTest.BurnE2E.dll

The VM must have:
1. x64 .NET Core SDK of 3.1 or later (for the test runner)

## Building with local changes

The current build process will poison your NuGet package cache, so you may have to run the following command to clear it:

> nuget locals all -clear