| 1 | # integration |
| 2 | |
| 3 | This layer is for building installers, and then executing xunit tests that run them and verify that they worked. |
| 4 | |
| 5 | ## Running tests |
| 6 | |
| 7 | The main focus of these tests is to validate behavior in a real environment. |
| 8 | Depending on who you talk to, these are integration or system-level or end-to-end (E2E) tests. |
| 9 | They modify machine state so it's strongly recommended *not* to run these tests on your dev box. |
| 10 | They should be run on a VM instead, where you can easily roll back. |
| 11 | |
| 12 | 1. Run build.cmd to build everything (the tests will not automatically run). |
| 13 | 1. Copy the build\IntegrationMsi\Debug\net6.0-windows folder to your VM. |
| 14 | 1. Open an elevated command prompt and navigate to the net6.0-windows folder. |
| 15 | 1. Run the runtests.cmd file to run the tests. |
| 16 | |
| 17 | You can modify the runtests.cmd to run specific tests. |
| 18 | For example, the following line runs only the specified test: |
| 19 | |
| 20 | > dotnet test --filter WixToolsetTest.BurnE2E.BasicFunctionalityTests.CanInstallAndUninstallSimpleBundle_x86_wixstdba WixToolsetTest.BurnE2E.dll |
| 21 | |
| 22 | The VM must have: |
| 23 | 1. x64 .NET Core SDK of 3.1 or later (for the test runner) |
| 24 | |
| 25 | ## Building with local changes |
| 26 | |
| 27 | The current build process will poison your NuGet package cache, so you may have to run the following command to clear it: |
| 28 | |
| 29 | > nuget locals all -clear |