public static void CreateEnvironment(IRunSettings runSettings, IMessageLogger messageLogger, out ILogger logger, out SettingsWrapper settings, string solutionDir = null) { if (string.IsNullOrWhiteSpace(solutionDir)) { solutionDir = null; } var settingsProvider = SafeGetRunSettingsProvider(runSettings, messageLogger); var ourRunSettings = GetRunSettingsContainer(settingsProvider, messageLogger); foreach (RunSettings projectSettings in ourRunSettings.ProjectSettings) { projectSettings.GetUnsetValuesFrom(ourRunSettings.SolutionSettings); } var testSettings = runSettings.GetSettings(GoogleTestConstants.TestPropertySettingsName) as TestPropertySettingsProvider; var settingsWrapper = new SettingsWrapper(ourRunSettings, testSettings?.TestPropertySettings, solutionDir); var loggerAdapter = new VsTestFrameworkLogger(messageLogger, () => settingsWrapper.OutputMode, () => settingsWrapper.TimestampMode, () => settingsWrapper.SeverityMode, () => settingsWrapper.PrefixOutputWithGta); settingsWrapper.RegexTraitParser = new RegexTraitParser(loggerAdapter); settingsWrapper.HelperFilesCache = new HelperFilesCache(loggerAdapter); LogWarningsForDeprecatedSettings(ourRunSettings, loggerAdapter); settings = settingsWrapper; logger = loggerAdapter; SpeedupThreadPoolHack(logger); }
public static void CreateEnvironment(IRunSettings runSettings, IMessageLogger messageLogger, out ILogger logger, out SettingsWrapper settings) { RunSettingsProvider settingsProvider; try { settingsProvider = runSettings.GetSettings(GoogleTestConstants.SettingsName) as RunSettingsProvider; } catch (Exception e) { settingsProvider = null; messageLogger.SendMessage(TestMessageLevel.Error, $"ERROR: Visual Studio test framework failed to provide settings; using default settings. Error message: {e.Message}"); } RunSettingsContainer ourRunSettings = settingsProvider?.SettingsContainer ?? new RunSettingsContainer(); foreach (RunSettings projectSettings in ourRunSettings.ProjectSettings) { projectSettings.GetUnsetValuesFrom(ourRunSettings.SolutionSettings); } var settingsWrapper = new SettingsWrapper(ourRunSettings); var loggerAdapter = new VsTestFrameworkLogger(messageLogger, () => settingsWrapper.DebugMode, () => settingsWrapper.TimestampOutput); var regexParser = new RegexTraitParser(loggerAdapter); settingsWrapper.RegexTraitParser = regexParser; settings = settingsWrapper; logger = loggerAdapter; }
public static void CreateEnvironment(IRunSettings runSettings, IMessageLogger messageLogger, out ILogger logger, out SettingsWrapper settings, string solutionDir = null) { if (string.IsNullOrWhiteSpace(solutionDir)) { solutionDir = null; } var settingsProvider = SafeGetRunSettingsProvider(runSettings, messageLogger); var ourRunSettings = GetRunSettingsContainer(settingsProvider, messageLogger); foreach (RunSettings projectSettings in ourRunSettings.ProjectSettings) { projectSettings.GetUnsetValuesFrom(ourRunSettings.SolutionSettings); } var settingsWrapper = new SettingsWrapper(ourRunSettings, solutionDir); var loggerAdapter = new VsTestFrameworkLogger(messageLogger, () => settingsWrapper.DebugMode, () => settingsWrapper.TimestampOutput); var regexParser = new RegexTraitParser(loggerAdapter); settingsWrapper.RegexTraitParser = regexParser; settings = settingsWrapper; logger = loggerAdapter; }
internal static TestEnvironment CreateTestEnvironment(IRunSettings runSettings, IMessageLogger messageLogger) { var settingsProvider = runSettings.GetSettings(GoogleTestConstants.SettingsName) as RunSettingsProvider; RunSettings ourRunSettings = settingsProvider != null ? settingsProvider.Settings : new RunSettings(); var settingsWrapper = new SettingsWrapper(ourRunSettings); var loggerAdapter = new VsTestFrameworkLogger(messageLogger, settingsWrapper); TestEnvironment testEnvironment = new TestEnvironment(settingsWrapper, loggerAdapter); settingsWrapper.RegexTraitParser = new RegexTraitParser(testEnvironment); return(testEnvironment); }
private void InitTestEnvironment(IRunSettings runSettings, IMessageLogger messageLogger) { if (TestEnvironment == null || TestEnvironment.Options.GetType() == typeof(Options)) { var settingsProvider = runSettings.GetSettings(GoogleTestConstants.SettingsName) as RunSettingsProvider; RunSettings ourRunSettings = settingsProvider != null ? settingsProvider.Settings : new RunSettings(); ILogger loggerAdapter = new VsTestFrameworkLogger(messageLogger); TestEnvironment = new TestEnvironment(new Options(ourRunSettings, loggerAdapter), loggerAdapter); } }
public static void CreateEnvironment(IRunSettings runSettings, IMessageLogger messageLogger, out ILogger logger, out SettingsWrapper settings) { var settingsProvider = runSettings.GetSettings(GoogleTestConstants.SettingsName) as RunSettingsProvider; RunSettingsContainer ourRunSettings = settingsProvider != null ? settingsProvider.SettingsContainer : new RunSettingsContainer(); var settingsWrapper = new SettingsWrapper(ourRunSettings); var loggerAdapter = new VsTestFrameworkLogger(messageLogger, () => settingsWrapper.DebugMode, () => settingsWrapper.TimestampOutput); var regexParser = new RegexTraitParser(loggerAdapter); settingsWrapper.RegexTraitParser = regexParser; settings = settingsWrapper; logger = loggerAdapter; }
public static void CreateEnvironment(IRunSettings runSettings, IMessageLogger messageLogger, out ILogger logger, out SettingsWrapper settings) { var settingsProvider = runSettings.GetSettings(GoogleTestConstants.SettingsName) as RunSettingsProvider; RunSettingsContainer ourRunSettings = settingsProvider != null ? settingsProvider.SettingsContainer : new RunSettingsContainer(); foreach (RunSettings projectSettings in ourRunSettings.ProjectSettings) { projectSettings.GetUnsetValuesFrom(ourRunSettings.SolutionSettings); } var testSettings = runSettings.GetSettings(GoogleTestConstants.TestPropertySettingsName) as TestPropertySettingsProvider; var settingsWrapper = new SettingsWrapper(ourRunSettings, testSettings?.TestPropertySettings); var loggerAdapter = new VsTestFrameworkLogger(messageLogger, () => settingsWrapper.DebugMode, () => settingsWrapper.TimestampOutput); var regexParser = new RegexTraitParser(loggerAdapter); settingsWrapper.RegexTraitParser = regexParser; settings = settingsWrapper; logger = loggerAdapter; }
public void DiscoverTests(IEnumerable <string> executables, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink) { ILogger loggerAdapter = new VsTestFrameworkLogger(logger); if (TestEnvironment == null || TestEnvironment.Options.GetType() == typeof(Options)) // check whether we have a mock { var settingsProvider = discoveryContext.RunSettings.GetSettings(GoogleTestConstants.SettingsName) as RunSettingsProvider; RunSettings ourRunSettings = settingsProvider != null ? settingsProvider.Settings : new RunSettings(); TestEnvironment = new TestEnvironment(new Options(ourRunSettings, loggerAdapter), loggerAdapter); Discoverer = new GoogleTestDiscoverer(TestEnvironment); } try { VsTestFrameworkReporter reporter = new VsTestFrameworkReporter(discoverySink); Discoverer.DiscoverTests(executables, reporter); } catch (Exception e) { TestEnvironment.LogError("Exception while discovering tests: " + e); } }