Run tests in bulk to improve performance
The fewer executions of "dotnet test" the better so batch up calls by referencing multiple assembly DLLs.
Rob Mensching committed
Oct 3, 2022 at 15:55 UTC
21ea5adcc788bbecd81e475277aba927ec66c860
8 files changed
+62
-44
src/api/api.cmd
+7
-8
@@ -26,10 +26,12 @@
26
msbuild api_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\api_build.binlog || exit /b
27
28
:: Test
29
-dotnet test burn\test\WixToolsetTest.Mba.Core -c %_C% --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Mba.Core.trx" || exit /b
30
-dotnet test %_B%\x86\BalUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BalUtilUnitTest.trx" || exit /b
31
-dotnet test %_B%\x86\BextUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BextUtilUnitTest.trx" || exit /b
32
-dotnet test wix\api_wix.sln -c %_C% --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\api_wix.trx" || exit /b
29
+dotnet test ^
30
+ %_B%\net6.0\WixToolsetTest.Data.dll ^
31
+ %_B%\net6.0\win-x86\WixToolsetTest.Mba.Core.dll ^
32
+ %_B%\x86\BalUtilUnitTest.dll ^
33
+ %_B%\x86\BextUtilUnitTest.dll ^
34
+ --nologo -l "trx;LogFileName=%_L%\TestResults\api.trx" || exit /b
35
36
@goto :end
37
@@ -41,10 +43,7 @@ dotnet test wix\api_wix.sln -c %_C% --nologo --no-build -l "trx;LogFileName=%_L%
43
@del "..\..\build\artifacts\WixToolset.Data.*.nupkg" 2> nul
44
@del "..\..\build\artifacts\WixToolset.Extensibility.*.nupkg" 2> nul
45
@del "..\..\build\artifacts\WixToolset.Mba.Core.*.nupkg" 2> nul
44
-@del "%_L%\TestResults\WixToolsetTest.Mba.Core.trx" 2> nul
45
-@del "%_L%\TestResults\BalUtilUnitTest.trx" 2> nul
46
-@del "%_L%\TestResults\BextUtilUnitTest.trx" 2> nul
47
-@del "%_L%\TestResults\api_wix.trx" 2> nul
46
+@del "%_L%\TestResults\api.trx" 2> nul
47
@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.balutil" 2> nul
48
@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.bextutil" 2> nul
49
@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.bootstrappercore.native" 2> nul
src/burn/burn.cmd
+22
-2
@@ -3,12 +3,20 @@
3
4
@set _C=Debug
5
@set _L=%~dp0..\..\build\logs
6
+
7
:parse_args
8
@if /i "%1"=="release" set _C=Release
9
+@if /i "%1"=="inc" set _INC=1
10
+@if /i "%1"=="clean" set _CLEAN=1
11
@if not "%1"=="" shift & goto parse_args
12
13
@set _B=%~dp0..\..\build\burn\%_C%
14
15
+:: Clean
16
+
17
+@if "%_INC%"=="" call :clean
18
+@if NOT "%_CLEAN%"=="" goto :end
19
+
20
@echo Building burn %_C%
21
22
:: burn
@@ -17,8 +25,20 @@ nuget restore || exit /b
25
26
msbuild burn_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\burn_build.binlog || exit /b
27
20
-dotnet test %_B%\x86\BurnUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BurnUnitTest32.trx" || exit /b
21
-dotnet test %_B%\x64\BurnUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\BurnUnitTest64.trx" || exit /b
28
+dotnet test ^
29
+ %_B%\x86\BurnUnitTest.dll ^
30
+ %_B%\x64\BurnUnitTest.dll ^
31
+ --nologo -l "trx;LogFileName=%_L%\TestResults\burn.trx" || exit /b
32
+
33
+@goto :end
34
+
35
+:clean
36
+@rd /s/q "..\..\build\burn" 2> nul
37
+@del "..\..\build\artifacts\WixToolset.Burn.*.nupkg" 2> nul
38
+@del "%_L%\TestResults\burn.trx" 2> nul
39
+@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.burn" 2> nul
40
+@exit /b
41
42
+:end
43
@popd
44
@endlocal
src/libs/libs.cmd
+6
-5
@@ -21,9 +21,11 @@
21
22
msbuild -Restore libs_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\libs_build.binlog || exit /b
23
24
-dotnet test %_B%\net6.0\WixToolsetTest.Versioning.dll --nologo -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Versioning.trx" || exit /b
25
-dotnet test %_B%\x86\DUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\DutilUnitTest32.trx" || exit /b
26
-dotnet test %_B%\x64\DUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestResults\DutilUnitTest64.trx" || exit /b
24
+dotnet test ^
25
+ %_B%\net6.0\WixToolsetTest.Versioning.dll ^
26
+ %_B%\x86\DUtilUnitTest.dll ^
27
+ %_B%\x64\DUtilUnitTest.dll ^
28
+ --nologo -l "trx;LogFileName=%_L%\TestResults\libs.trx" || exit /b
29
30
@goto :end
31
@@ -32,8 +34,7 @@ dotnet test %_B%\x64\DUtilUnitTest.dll --nologo -l "trx;LogFileName=%_L%\TestRes
34
@del "..\..\build\artifacts\WixToolset.DUtil.*.nupkg" 2> nul
35
@del "..\..\build\artifacts\WixToolset.Versioning.*.nupkg" 2> nul
36
@del "..\..\build\artifacts\WixToolset.WcaUtil.*.nupkg" 2> nul
35
-@del "%_L%\TestResults\WixToolsetTest.Versioning.trx" 2> nul
36
-@del "%_L%\TestResults\DutilUnitTest*.trx" 2> nul
37
+@del "%_L%\TestResults\libs.trx" 2> nul
38
@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.dutil" 2> nul
39
@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.versioning" 2> nul
40
@rd /s/q "%USERPROFILE%\.nuget\packages\wixtoolset.wcautil" 2> nul
src/test/burn/test_burn.cmd
+1
-1
@@ -21,7 +21,7 @@ mt.exe -manifest "WixToolsetTest.BurnE2E\testhost.longpathaware.manifest" -updat
21
22
@if not "%RuntimeTestsEnabled%"=="true" goto :LExit
23
24
-dotnet test -c %_C% --no-build WixToolsetTest.BurnE2E -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.BurnE2E.trx" || exit /b
24
+dotnet test -c %_C% WixToolsetTest.BurnE2E --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.BurnE2E.trx" || exit /b
25
26
:LExit
27
@popd
src/test/msi/test_msi.cmd
+1
-1
@@ -16,7 +16,7 @@ msbuild -t:Build -Restore TestData\TestData.proj -p:Configuration=%_C% -m -bl:%_
16
17
@if not "%RuntimeTestsEnabled%"=="true" goto :LExit
18
19
-dotnet test -c %_C% --no-build WixToolsetTest.MsiE2E -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.MsiE2E.trx" || exit /b
19
+dotnet test -c %_C% WixToolsetTest.MsiE2E --nologo --no-build -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.MsiE2E.trx" || exit /b
20
21
:LExit
22
@popd
src/testresultfilelist.txt
+6
-18
@@ -1,24 +1,12 @@
1
-build/logs/TestResults/api_wix.trx
2
-build/logs/TestResults/BalUtilUnitTest.trx
3
-build/logs/TestResults/BextUtilUnitTest.trx
4
-build/logs/TestResults/BurnUnitTest32.trx
5
-build/logs/TestResults/BurnUnitTest64.trx
6
-build/logs/TestResults/DutilUnitTest32.trx
7
-build/logs/TestResults/DutilUnitTest64.trx
1
+build/logs/TestResults/api.trx
2
+build/logs/TestResults/burn.trx
3
+build/logs/TestResults/libs.trx
4
+build/logs/TestResults/tools.trx
5
+build/logs/TestResults/wix_prepublish.trx
6
+build/logs/TestResults/wix_postpublish.trx
7
build/logs/TestResults/WixToolsetTest.Bal.trx
9
-build/logs/TestResults/WixToolsetTest.BuildTasks.trx
8
build/logs/TestResults/WixToolsetTest.BurnE2E.trx
11
-build/logs/TestResults/WixToolsetTest.Converters.trx
12
-build/logs/TestResults/WixToolsetTest.Converters.Symbolizer.trx
13
-build/logs/TestResults/WixToolsetTest.Core.trx
14
-build/logs/TestResults/WixToolsetTest.Core.Native.trx
15
-build/logs/TestResults/WixToolsetTest.CoreIntegration.trx
9
build/logs/TestResults/WixToolsetTest.Dnc.HostGenerator.trx
17
-build/logs/TestResults/WixToolsetTest.Heat.trx
18
-build/logs/TestResults/WixToolsetTest.HeatTasks.trx
10
build/logs/TestResults/WixToolsetTest.ManagedHost.trx
20
-build/logs/TestResults/WixToolsetTest.Mba.Core.trx
11
build/logs/TestResults/WixToolsetTest.MsiE2E.trx
22
-build/logs/TestResults/WixToolsetTest.Sdk.trx
23
-build/logs/TestResults/WixToolsetTest.Versioning.trx
12
build/logs/TestResults/WixToolsetTest.WixE2ETests.trx
\ No newline at end of file
src/tools/tools.cmd
+6
-2
@@ -10,6 +10,8 @@
10
@if /i "%1"=="clean" set _CLEAN=1
11
@if not "%1"=="" shift & goto parse_args
12
13
+@set _B=%~dp0..\..\build\tools\%_C%
14
+
15
:: Clean
16
17
@if "%_INC%"=="" call :clean
@@ -24,8 +26,10 @@ msbuild -Restore tools.sln -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L
26
msbuild publish_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\tools_publish.binlog || exit /b
27
28
:: Test
27
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Heat -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Heat.trx" || exit /b
28
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.HeatTasks -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.HeatTasks.trx" || exit /b
29
+dotnet test ^
30
+ %_B%\test\WixToolsetTest.Heat\net472\WixToolsetTest.Heat.dll ^
31
+ %_B%\test\WixToolsetTest.HeatTasks\net472\WixToolsetTest.HeatTasks.dll ^
32
+ --nologo -l "trx;LogFileName=%_L%\TestResults\tools.trx" || exit /b
33
34
:: Pack
35
msbuild -t:Pack WixToolset.Heat -p:Configuration=%_C% -p:NoBuild=true -nologo -m -warnaserror -bl:%_L%\tools_pack.binlog || exit /b
src/wix/wix.cmd
+13
-7
@@ -7,6 +7,7 @@
7
@if /i "%1"=="release" set _C=Release
8
@if not "%1"=="" shift & goto parse_args
9
10
+@set _B=%~dp0..\..\build\wix\%_C%
11
@set _P_OBJ=%~dp0..\..\build\wix\obj\publish_t\%_C%\
12
@set _P=%~dp0..\..\build\wix\%_C%\publish\
13
@set _RCO=/S /R:1 /W:1 /NP /XO /NS /NC /NFL /NDL /NJH /NJS
@@ -24,11 +25,13 @@ msbuild wix.sln -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\wix_build
25
26
27
:: Pre-Publish Test
27
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.trx" || exit /b
28
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Converters.Symbolizer -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Converters.Symbolizer.trx" || exit /b
29
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.trx" || exit /b
30
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Core.Native -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Core.Native.trx" || exit /b
31
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.CoreIntegration -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.CoreIntegration.trx" || exit /b
28
+dotnet test ^
29
+ %_B%\test\WixToolsetTest.Converters\net6.0\WixToolsetTest.Converters.dll ^
30
+ %_B%\test\WixToolsetTest.Converters.Symbolizer\net472\WixToolsetTest.Converters.Symbolizer.dll ^
31
+ %_B%\test\WixToolsetTest.Core\net6.0\WixToolsetTest.Core.dll ^
32
+ %_B%\test\WixToolsetTest.Core.Native\net6.0\win-x64\WixToolsetTest.Core.Native.dll ^
33
+ %_B%\test\WixToolsetTest.CoreIntegration\net6.0\WixToolsetTest.CoreIntegration.dll ^
34
+ --nologo -l "trx;LogFileName=%_L%\TestResults\wix_prepublish.trx" || exit /b
35
36
37
:: Publish
@@ -50,8 +53,11 @@ msbuild -t:Publish -p:Configuration=%_C% -nologo -warnaserror WixToolset.Sdk\Wix
53
54
55
:: Test
53
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.BuildTasks -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.BuildTasks.trx" || exit /b
54
-dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Sdk -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Sdk.trx" || exit /b
56
+dotnet test ^
57
+ %_B%\test\WixToolsetTest.BuildTasks\net472\win-x64\WixToolsetTest.BuildTasks.dll ^
58
+ %_B%\test\WixToolsetTest.Sdk\net472\WixToolsetTest.Sdk.dll ^
59
+ --nologo -l "trx;LogFileName=%_L%\TestResults\wix_postpublish.trx" || exit /b
60
+
61
62
:: Pack
63
msbuild pack_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\wix_pack.binlog || exit /b