in GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs [41:101]
public void RunTests(IEnumerable<TestCase> testCasesToRun, string baseDir,
string workingDir, string userParameters, bool isBeingDebugged, IDebuggedProcessLauncher debuggedLauncher, IProcessExecutor executor)
{
DebugUtils.AssertIsNotNull(userParameters, nameof(userParameters));
DebugUtils.AssertIsNotNull(workingDir, nameof(workingDir));
IDictionary<string, List<TestCase>> groupedTestCases = testCasesToRun.GroupByExecutable();
foreach (string executable in groupedTestCases.Keys)
{
string finalParameters = SettingsWrapper.ReplacePlaceholders(userParameters, executable);
string finalWorkingDir = SettingsWrapper.ReplacePlaceholders(workingDir, executable);
if (_canceled)
break;
_settings.ExecuteWithSettingsForExecutable(executable, () =>
{
var testsWithNoTestPropertySettings = groupedTestCases[executable];
if (_settings.TestPropertySettingsContainer != null)
{
testsWithNoTestPropertySettings = new List<TestCase>();
foreach (var testCase in groupedTestCases[executable])
{
ITestPropertySettings settings;
if (_settings.TestPropertySettingsContainer.TryGetSettings(testCase.FullyQualifiedName, out settings))
{
RunTestsFromExecutable(
executable,
settings.WorkingDirectory,
settings.Environment,
Enumerable.Repeat(testCase, 1),
finalParameters,
isBeingDebugged,
debuggedLauncher,
executor);
}
else
{
testsWithNoTestPropertySettings.Add(testCase);
}
}
}
if (testsWithNoTestPropertySettings.Count != 0)
{
RunTestsFromExecutable(
executable,
finalWorkingDir,
null,
testsWithNoTestPropertySettings,
finalParameters,
isBeingDebugged,
debuggedLauncher,
executor);
}
}, _logger);
}
}