-
-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathTest.runsettings
More file actions
80 lines (73 loc) · 3.66 KB
/
Test.runsettings
File metadata and controls
80 lines (73 loc) · 3.66 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?xml version="1.0" encoding="utf-8"?>
<!--
VSTest Exit Code Interpretation:
================================
Exit code 0: All tests passed, no skipped tests
Exit code 1: Tests failed OR tests were skipped (VSTest treats skipped as non-zero)
Exit code -1073741819 (0xC0000005): Access violation during cleanup
- This is mitigated by InIsolation mode below, but may still occur in edge cases
- Check test output for "Passed/Failed/Skipped" counts to determine actual results
To reliably interpret results:
1. Look for "Test Run Successful" or "Test Run Failed" in output
2. Count "Passed", "Failed", "Skipped" lines in output
3. Exit code 1 with 0 failed is success (just has skipped tests)
-->
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<!-- Use 0 for auto-detect, or specific number of cores -->
<MaxCpuCount>0</MaxCpuCount>
<!-- x86 or x64 -->
<TargetPlatform>x64</TargetPlatform>
<!-- Framework version - net48 -->
<TargetFrameworkVersion>net48</TargetFrameworkVersion>
<!-- Test timeout in milliseconds (10 minutes default for long-running tests) -->
<TestSessionTimeout>900000</TestSessionTimeout>
<!--
InIsolation: Run tests in a separate process.
This prevents native COM cleanup crashes from affecting VSTest's exit code.
FieldWorks tests use native interop (VwCacheDa, ICU, etc.) that can crash
during process shutdown if COM pointers are released after native DLLs unload.
-->
<InIsolation>true</InIsolation>
<!--
Environment variables to suppress Windows Error Reporting dialogs.
These prevent "XYZ has stopped working" popups when tests crash during cleanup.
-->
<EnvironmentVariables>
<!-- Suppress .NET Framework JIT debugger launch dialog -->
<COMPlus_DbgJITDebugLaunchSetting>0</COMPlus_DbgJITDebugLaunchSetting>
<!-- Suppress .NET Core/5+ JIT debugger launch dialog -->
<DOTNET_DbgJITDebugLaunchSetting>0</DOTNET_DbgJITDebugLaunchSetting>
<!-- Disable crash report generation -->
<DOTNET_EnableCrashReport>0</DOTNET_EnableCrashReport>
<!-- Suppress Windows Error Reporting (WER) dialogs -->
<DOTNET_WER>0</DOTNET_WER>
<!-- Suppress FieldWorks assertion dialogs (native + managed) -->
<AssertUiEnabled>false</AssertUiEnabled>
<!-- Prefer a failing test over a modal dialog or silent continue -->
<AssertExceptionEnabled>true</AssertExceptionEnabled>
</EnvironmentVariables>
</RunConfiguration>
<!--
IMPORTANT: External NuGet Package Test Exclusion
================================================
The SIL.LCModel.Tests, SIL.LCModel.Core.Tests, and SIL.LCModel.Utils.Tests NuGet
packages contain liblcm's own unit tests (2,488 tests total). These should NOT
be run as part of FieldWorks testing because:
1. They test liblcm internals, not FieldWorks code
2. They have dependency version conflicts (DependencyModel 2.0.4 vs FW's 9.0.9)
3. They're already tested in liblcm CI
The FieldWorks.targets MSBuild file already specifies exact test DLLs to run.
If using vstest.console.exe directly, exclude these assemblies:
vstest.console.exe *.Tests.dll /TestCaseFilter:"FullyQualifiedName!~SIL.LCModel.Tests&FullyQualifiedName!~SIL.LCModel.Core.Tests"
See: https://jira.sil.org/browse/LT-XXXXX for upstream fix request
-->
<!-- NUnit adapter settings -->
<NUnit>
<!-- Use 0 for auto-detect parallel workers -->
<NumberOfTestWorkers>0</NumberOfTestWorkers>
<!-- Default test timeout in milliseconds (70 seconds to match legacy MSBuild timeouts) -->
<DefaultTimeout>70000</DefaultTimeout>
</NUnit>
</RunSettings>