private void RunExternalSmokeTests()
{
loggerProvider.GetLogger().Debug("Setting environment variables.");
SetEnvironmentVariables();
//NUnit v2 workflow
var useV3Workflow = false;
try
{
var testResult = GenerateTestResults();
loggerProvider.GetLogger().Debug("Logging test results.");
LogTestResults(testResult);
if (testResult.IsFailure)
{
throw new SmokeTestServiceException("Smoke tests failed. Please check ouput");
}
}
catch (UnsupportedFrameworkException unsupportedFrameworkException)
{
loggerProvider.GetLogger()
.Warning("Encountered unsupported version exception, attempting to recover by using new V3 runner.");
if (
unsupportedFrameworkException.Message.ToLower()
.Contains("unsupported version of the nunit.framework, 3.0".ToLower()))
{
loggerProvider.GetLogger().Warning("NUnit V3 Workflow is going to attempt to run.");
useV3Workflow = true;
}
}
//Nunit v3 workflow
if (useV3Workflow)
{
loggerProvider.GetLogger().Debug("Running V3 TextRunner.");
var numberOfFailedTests = GenerateTestResultsForV3();
//LoggerProvider.GetLogger().Debug("Logging test results from V3 workflow.");
if (numberOfFailedTests > 0 || numberOfFailedTests == ConsoleRunner.INVALID_ARG ||
numberOfFailedTests == ConsoleRunner.FIXTURE_NOT_FOUND ||
numberOfFailedTests == ConsoleRunner.INVALID_ASSEMBLY ||
numberOfFailedTests == ConsoleRunner.UNEXPECTED_ERROR)
{
throw new SmokeTestServiceException("Smoke tests failed. Please check ouput");
}
}
}