in BoostTestAdapter/BoostTestExecutor.cs [338:399]
private void RunBoostTests(IEnumerable<TestRun> testBatches, IRunContext runContext, IFrameworkHandle frameworkHandle)
{
BoostTestAdapterSettings settings = BoostTestAdapterSettingsProvider.GetSettings(runContext);
foreach (TestRun batch in testBatches)
{
if (_cancelled)
{
break;
}
DateTimeOffset start = new DateTimeOffset(DateTime.Now);
try
{
Logger.Info(((runContext.IsBeingDebugged) ? Resources.Debugging : Resources.Executing), string.Join(", ", batch.Tests));
using (TemporaryFile report = new TemporaryFile(batch.Arguments.ReportFile))
using (TemporaryFile log = new TemporaryFile(batch.Arguments.LogFile))
using (TemporaryFile stdout = new TemporaryFile(batch.Arguments.StandardOutFile))
using (TemporaryFile stderr = new TemporaryFile(batch.Arguments.StandardErrorFile))
{
Logger.Debug(Resources.WorkingDirectory, batch.Arguments.WorkingDirectory ?? "(null)");
Logger.Debug(Resources.ReportFile, batch.Arguments.ReportFile);
Logger.Debug(Resources.LogFile, batch.Arguments.LogFile);
Logger.Debug(Resources.StdOutFile, batch.Arguments.StandardOutFile ?? "(null)");
Logger.Debug(Resources.StdErrFile, batch.Arguments.StandardErrorFile ?? "(null)");
Logger.Debug(Resources.CmdLineArguments, batch.Arguments.ToString() ?? "(null)");
// Execute the tests
if (ExecuteTests(batch, runContext, frameworkHandle))
{
if (settings.PostTestDelay > 0)
{
Thread.Sleep(settings.PostTestDelay);
}
foreach (VSTestResult result in GenerateTestResults(batch, start, settings))
{
// Identify test result to Visual Studio Test framework
frameworkHandle.RecordResult(result);
}
}
}
}
catch (Boost.Runner.TimeoutException ex)
{
foreach (VSTestCase testCase in batch.Tests)
{
VSTestResult testResult = GenerateTimeoutResult(testCase, ex);
testResult.StartTime = start;
frameworkHandle.RecordResult(testResult);
}
}
catch (Exception ex)
{
Logger.Exception(ex, Resources.BatchException, batch.Source, string.Join(", ", batch.Tests), ex.Message);
}
}
}