From c2cda47a24a635411af7181d2b14d3cf0137c06c Mon Sep 17 00:00:00 2001 From: Jayarani garg Date: Wed, 28 Jun 2017 16:34:49 +0530 Subject: [PATCH] Adapter to honour CollectSourceInformation Flag and not DesignMode (#211) * Adapter to honour CollectSourceInformation Flag and not DesignMode * PR comments --- .../Discovery/UnitTestDiscoverer.cs | 6 +- .../MSTest.CoreAdapter/MSTestDiscoverer.cs | 1 - .../MSTest.CoreAdapter/MSTestExecutor.cs | 1 - .../MSTest.CoreAdapter/MSTestSettings.cs | 29 ++++++++ .../RunConfigurationSettings.cs | 67 +++++-------------- .../Discovery/UnitTestDiscovererTests.cs | 6 +- .../MSTestExecutorTests.cs | 8 +-- .../RunConfigurationSettingsTests.cs | 48 ++++++------- 8 files changed, 79 insertions(+), 87 deletions(-) diff --git a/src/Adapter/MSTest.CoreAdapter/Discovery/UnitTestDiscoverer.cs b/src/Adapter/MSTest.CoreAdapter/Discovery/UnitTestDiscoverer.cs index cadde86a2c..fb1c62ec18 100644 --- a/src/Adapter/MSTest.CoreAdapter/Discovery/UnitTestDiscoverer.cs +++ b/src/Adapter/MSTest.CoreAdapter/Discovery/UnitTestDiscoverer.cs @@ -81,12 +81,12 @@ internal virtual void DiscoverTestsInSource( internal void SendTestCases(string source, IEnumerable testElements, ITestCaseDiscoverySink discoverySink) { - var isDesignMode = RunConfigurationSettings.ConfigurationSettings.DesignMode; + var shouldCollectSourceInformation = MSTestSettings.RunConfigurationSettings.CollectSourceInformation; var navigationSessions = new Dictionary(); try { - if (isDesignMode) + if (shouldCollectSourceInformation) { navigationSessions.Add(source, PlatformServiceProvider.Instance.FileOperations.CreateNavigationSession(source)); } @@ -96,7 +96,7 @@ internal void SendTestCases(string source, IEnumerable testElem object testNavigationSession; var testCase = testElement.ToTestCase(); - if (isDesignMode) + if (shouldCollectSourceInformation) { string testSource = testElement.TestMethod.DeclaringAssemblyName ?? source; diff --git a/src/Adapter/MSTest.CoreAdapter/MSTestDiscoverer.cs b/src/Adapter/MSTest.CoreAdapter/MSTestDiscoverer.cs index 4d0095af38..04c3e90772 100644 --- a/src/Adapter/MSTest.CoreAdapter/MSTestDiscoverer.cs +++ b/src/Adapter/MSTest.CoreAdapter/MSTestDiscoverer.cs @@ -47,7 +47,6 @@ public void DiscoverTests( // Populate the runsettings. MSTestSettings.PopulateSettings(discoveryContext); - RunConfigurationSettings.PopulateSettings(discoveryContext); // Scenarios that include testsettings or forcing a run via the legacy adapter are currently not supported in MSTestAdapter. if (MSTestSettings.IsLegacyScenario(logger)) diff --git a/src/Adapter/MSTest.CoreAdapter/MSTestExecutor.cs b/src/Adapter/MSTest.CoreAdapter/MSTestExecutor.cs index 07347eb26d..807e5f52f8 100644 --- a/src/Adapter/MSTest.CoreAdapter/MSTestExecutor.cs +++ b/src/Adapter/MSTest.CoreAdapter/MSTestExecutor.cs @@ -76,7 +76,6 @@ public void RunTests(IEnumerable sources, IRunContext runContext, IFrame // Populate the runsettings. MSTestSettings.PopulateSettings(runContext); - RunConfigurationSettings.PopulateSettings(runContext); // Scenarios that include testsettings or forcing a run via the legacy adapter are currently not supported in MSTestAdapter. if (MSTestSettings.IsLegacyScenario(frameworkHandle)) diff --git a/src/Adapter/MSTest.CoreAdapter/MSTestSettings.cs b/src/Adapter/MSTest.CoreAdapter/MSTestSettings.cs index 4a76b1c695..e41015b448 100644 --- a/src/Adapter/MSTest.CoreAdapter/MSTestSettings.cs +++ b/src/Adapter/MSTest.CoreAdapter/MSTestSettings.cs @@ -33,6 +33,11 @@ public class MSTestSettings /// private static MSTestSettings currentSettings; + /// + /// Member variable for RunConfiguration settings + /// + private static RunConfigurationSettings runConfigurationSettings; + /// /// Initializes a new instance of the class. /// @@ -66,6 +71,27 @@ private set } } + /// + /// Gets the current configuration settings. + /// + public static RunConfigurationSettings RunConfigurationSettings + { + get + { + if (runConfigurationSettings == null) + { + runConfigurationSettings = new RunConfigurationSettings(); + } + + return runConfigurationSettings; + } + + private set + { + runConfigurationSettings = value; + } + } + /// /// Gets a value indicating whether capture debug traces. /// @@ -113,6 +139,8 @@ public static void PopulateSettings(MSTestSettings settings) /// public static void PopulateSettings(IDiscoveryContext context) { + RunConfigurationSettings = RunConfigurationSettings.PopulateSettings(context); + if (context == null || context.RunSettings == null || string.IsNullOrEmpty(context.RunSettings.SettingsXml)) { // This will contain default adapter settings @@ -198,6 +226,7 @@ internal static MSTestSettings GetSettings(string runsettingsXml, string setting internal static void Reset() { MSTestSettings.CurrentSettings = null; + MSTestSettings.RunConfigurationSettings = null; } /// diff --git a/src/Adapter/MSTest.CoreAdapter/RunConfigurationSettings.cs b/src/Adapter/MSTest.CoreAdapter/RunConfigurationSettings.cs index 92d5138a8c..375d1e0a9c 100644 --- a/src/Adapter/MSTest.CoreAdapter/RunConfigurationSettings.cs +++ b/src/Adapter/MSTest.CoreAdapter/RunConfigurationSettings.cs @@ -19,44 +19,18 @@ public class RunConfigurationSettings /// public const string SettingsName = "RunConfiguration"; - /// - /// Member variable for RunConfiguration settings - /// - private static RunConfigurationSettings configurationSettings; - /// /// Initializes a new instance of the class. /// public RunConfigurationSettings() { - this.DesignMode = true; + this.CollectSourceInformation = true; } /// - /// Gets the current settings. + /// Gets a value indicating whether source information needs to be collected or not. /// - public static RunConfigurationSettings ConfigurationSettings - { - get - { - if (configurationSettings == null) - { - configurationSettings = new RunConfigurationSettings(); - } - - return configurationSettings; - } - - private set - { - configurationSettings = value; - } - } - - /// - /// Gets a value indicating whether designMode is on(IDE scenario) or off(CLI scenario). - /// - public bool DesignMode { get; private set; } + public bool CollectSourceInformation { get; private set; } /// /// Populate adapter settings from the context @@ -64,31 +38,30 @@ private set /// /// The discovery context that contains the runsettings. /// - public static void PopulateSettings(IDiscoveryContext context) + /// Populated RunConfigurationSettings from the discovery context. + public static RunConfigurationSettings PopulateSettings(IDiscoveryContext context) { if (context == null || context.RunSettings == null || string.IsNullOrEmpty(context.RunSettings.SettingsXml)) { - // This will contain default adapter settings - ConfigurationSettings = new RunConfigurationSettings(); - return; + // This will contain default configuration settings + return new RunConfigurationSettings(); } var settings = GetSettings(context.RunSettings.SettingsXml, SettingsName); if (settings != null) { - ConfigurationSettings = settings; - return; + return settings; } - ConfigurationSettings = new RunConfigurationSettings(); + return new RunConfigurationSettings(); } /// - /// Gets the adapter specific settings from the xml. + /// Gets the configuration settings from the xml. /// /// The xml with the settings passed from the test platform. - /// The name of the adapter settings to fetch - Its either MSTest or MSTestV2 + /// The name of the settings to fetch. /// The settings if found. Null otherwise. internal static RunConfigurationSettings GetSettings(string runsettingsXml, string settingName) { @@ -118,14 +91,6 @@ internal static RunConfigurationSettings GetSettings(string runsettingsXml, stri return null; } - /// - /// Resets any settings loaded. - /// - internal static void Reset() - { - RunConfigurationSettings.ConfigurationSettings = null; - } - /// /// Convert the parameter xml to TestSettings /// @@ -139,12 +104,12 @@ private static RunConfigurationSettings ToSettings(XmlReader reader) // // // - // true + // true // // RunConfigurationSettings settings = new RunConfigurationSettings(); - // Read the first element in the section which is either "MSTest"/"MSTestV2" + // Read the first element in the section reader.ReadToNextElement(); if (!reader.IsEmptyElement) @@ -157,13 +122,13 @@ private static RunConfigurationSettings ToSettings(XmlReader reader) string elementName = reader.Name.ToUpperInvariant(); switch (elementName) { - case "DESIGNMODE": + case "COLLECTSOURCEINFORMATION": { if (bool.TryParse(reader.ReadInnerXml(), out result)) { - settings.DesignMode = result; + settings.CollectSourceInformation = result; PlatformServiceProvider.Instance.AdapterTraceLogger.LogInfo( - "DesignMode value Found : {0} ", + "CollectSourceInformation value Found : {0} ", result); } diff --git a/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/Discovery/UnitTestDiscovererTests.cs b/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/Discovery/UnitTestDiscovererTests.cs index e5be68a3d3..b95f24e169 100644 --- a/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/Discovery/UnitTestDiscovererTests.cs +++ b/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/Discovery/UnitTestDiscovererTests.cs @@ -152,14 +152,14 @@ public void SendTestCasesShouldSendAllTestCaseData() } [TestMethodV1] - public void SendTestCasesShouldSendTestCasesWithoutNavigationDataWhenDesignModeIsFalse() + public void SendTestCasesShouldSendTestCasesWithoutNavigationDataWhenCollectSourceInformationIsFalse() { string settingsXml = @" .\TestResults - false + false "; @@ -174,7 +174,7 @@ public void SendTestCasesShouldSendTestCasesWithoutNavigationDataWhenDesignModeI mockDiscoveryContext.Setup(dc => dc.RunSettings).Returns(this.mockRunSettings.Object); // Act - RunConfigurationSettings.PopulateSettings(mockDiscoveryContext.Object); + MSTestSettings.PopulateSettings(mockDiscoveryContext.Object); this.unitTestDiscoverer.SendTestCases(Source, this.testElements, this.mockTestCaseDiscoverySink.Object); // Assert diff --git a/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/MSTestExecutorTests.cs b/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/MSTestExecutorTests.cs index 1f12dbbcc8..bac46593f3 100644 --- a/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/MSTestExecutorTests.cs +++ b/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/MSTestExecutorTests.cs @@ -91,7 +91,7 @@ public void RunTestsWithSourcesShouldNotExecuteTestsIfTestSettingsIsGiven() } [TestMethod] - public void RunTestsWithSourcesShouldSetDefaultDesignModeAsTrue() + public void RunTestsWithSourcesShouldSetDefaultCollectSourceInformationAsTrue() { var sources = new List { Assembly.GetExecutingAssembly().Location }; string runSettingxml = @@ -101,11 +101,11 @@ public void RunTestsWithSourcesShouldSetDefaultDesignModeAsTrue() this.mockRunSettings.Setup(rs => rs.SettingsXml).Returns(runSettingxml); this.mstestExecutor.RunTests(sources, this.mockRunContext.Object, this.mockFrameworkHandle.Object); - Assert.IsTrue(RunConfigurationSettings.ConfigurationSettings.DesignMode); + Assert.IsTrue(MSTestSettings.RunConfigurationSettings.CollectSourceInformation); } [TestMethod] - public void RunTestsWithSourcesShouldSetDesignModeAsFalseIfSpecifiedInRunSettings() + public void RunTestsWithSourcesShouldSetCollectSourceInformationAsFalseIfSpecifiedInRunSettings() { var sources = new List { Assembly.GetExecutingAssembly().Location }; string runSettingxml = @@ -118,7 +118,7 @@ public void RunTestsWithSourcesShouldSetDesignModeAsFalseIfSpecifiedInRunSetting this.mockRunSettings.Setup(rs => rs.SettingsXml).Returns(runSettingxml); this.mstestExecutor.RunTests(sources, this.mockRunContext.Object, this.mockFrameworkHandle.Object); - Assert.IsFalse(RunConfigurationSettings.ConfigurationSettings.DesignMode); + Assert.IsFalse(MSTestSettings.RunConfigurationSettings.CollectSourceInformation); } } } diff --git a/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/RunConfigurationSettingsTests.cs b/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/RunConfigurationSettingsTests.cs index f0adca907b..c0e75aa9b8 100644 --- a/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/RunConfigurationSettingsTests.cs +++ b/test/UnitTests/MSTest.CoreAdapter.Unit.Tests/RunConfigurationSettingsTests.cs @@ -45,7 +45,7 @@ public void Cleanup() #region Property validation. [TestMethod] - public void DesignModeIsByDefaultTrueWhenNotSpecified() + public void CollectSourceInformationIsByDefaultTrueWhenNotSpecified() { string runSettingxml = @" @@ -54,23 +54,23 @@ public void DesignModeIsByDefaultTrueWhenNotSpecified() "; RunConfigurationSettings configurationSettings = RunConfigurationSettings.GetSettings(runSettingxml, RunConfigurationSettings.SettingsName); - Assert.AreEqual(configurationSettings.DesignMode, true); + Assert.AreEqual(configurationSettings.CollectSourceInformation, true); } [TestMethod] - public void DesignModeShouldBeConsumedFromRunSettingsWhenSpecified() + public void CollectSourceInformationShouldBeConsumedFromRunSettingsWhenSpecified() { string runSettingxml = @" .\TestResults - false + false "; RunConfigurationSettings configurationSettings = RunConfigurationSettings.GetSettings(runSettingxml, RunConfigurationSettings.SettingsName); - Assert.AreEqual(configurationSettings.DesignMode, false); + Assert.AreEqual(configurationSettings.CollectSourceInformation, false); } #endregion @@ -80,13 +80,13 @@ public void DesignModeShouldBeConsumedFromRunSettingsWhenSpecified() [TestMethod] public void ConfigurationSettingsShouldReturnDefaultSettingsIfNotSet() { - RunConfigurationSettings.Reset(); - var settings = RunConfigurationSettings.ConfigurationSettings; + MSTestSettings.Reset(); + var settings = MSTestSettings.RunConfigurationSettings; Assert.IsNotNull(settings); // Validating the default value of a random setting. - Assert.AreEqual(settings.DesignMode, true); + Assert.AreEqual(settings.CollectSourceInformation, true); } #endregion @@ -96,29 +96,29 @@ public void ConfigurationSettingsShouldReturnDefaultSettingsIfNotSet() [TestMethod] public void PopulateSettingsShouldInitializeDefaultConfigurationSettingsWhenDiscoveryContextIsNull() { - RunConfigurationSettings.PopulateSettings((IDiscoveryContext)null); + MSTestSettings.PopulateSettings((IDiscoveryContext)null); - RunConfigurationSettings settings = RunConfigurationSettings.ConfigurationSettings; - Assert.AreEqual(settings.DesignMode, true); + RunConfigurationSettings settings = MSTestSettings.RunConfigurationSettings; + Assert.AreEqual(settings.CollectSourceInformation, true); } [TestMethod] public void PopulateSettingsShouldInitializeDefaultSettingsWhenRunSettingsIsNull() { - RunConfigurationSettings.PopulateSettings(this.mockDiscoveryContext.Object); + MSTestSettings.PopulateSettings(this.mockDiscoveryContext.Object); - RunConfigurationSettings settings = RunConfigurationSettings.ConfigurationSettings; - Assert.AreEqual(settings.DesignMode, true); + RunConfigurationSettings settings = MSTestSettings.RunConfigurationSettings; + Assert.AreEqual(settings.CollectSourceInformation, true); } [TestMethod] public void PopulateSettingsShouldInitializeDefaultSettingsWhenRunSettingsXmlIsEmpty() { this.mockDiscoveryContext.Setup(md => md.RunSettings.SettingsXml).Returns(string.Empty); - RunConfigurationSettings.PopulateSettings(this.mockDiscoveryContext.Object); + MSTestSettings.PopulateSettings(this.mockDiscoveryContext.Object); - RunConfigurationSettings settings = RunConfigurationSettings.ConfigurationSettings; - Assert.AreEqual(settings.DesignMode, true); + RunConfigurationSettings settings = MSTestSettings.RunConfigurationSettings; + Assert.AreEqual(settings.CollectSourceInformation, true); } [TestMethod] @@ -133,13 +133,13 @@ public void PopulateSettingsShouldInitializeSettingsToDefaultIfNotSpecified() this.mockDiscoveryContext.Setup(dc => dc.RunSettings).Returns(this.mockRunSettings.Object); this.mockRunSettings.Setup(rs => rs.SettingsXml).Returns(runSettingxml); - RunConfigurationSettings.PopulateSettings(this.mockDiscoveryContext.Object); + MSTestSettings.PopulateSettings(this.mockDiscoveryContext.Object); - RunConfigurationSettings settings = RunConfigurationSettings.ConfigurationSettings; + RunConfigurationSettings settings = MSTestSettings.RunConfigurationSettings; Assert.IsNotNull(settings); // Validating the default value of a random setting. - Assert.AreEqual(settings.DesignMode, true); + Assert.AreEqual(settings.CollectSourceInformation, true); } [TestMethod] @@ -149,19 +149,19 @@ public void PopulateSettingsShouldInitializeSettingsFromRunConfigurationSection( @" .\TestResults - false + false "; this.mockDiscoveryContext.Setup(dc => dc.RunSettings).Returns(this.mockRunSettings.Object); this.mockRunSettings.Setup(rs => rs.SettingsXml).Returns(runSettingxml); - RunConfigurationSettings.PopulateSettings(this.mockDiscoveryContext.Object); + MSTestSettings.PopulateSettings(this.mockDiscoveryContext.Object); - RunConfigurationSettings settings = RunConfigurationSettings.ConfigurationSettings; + RunConfigurationSettings settings = MSTestSettings.RunConfigurationSettings; Assert.IsNotNull(settings); // Validating the default value of a random setting. - Assert.AreEqual(settings.DesignMode, false); + Assert.AreEqual(settings.CollectSourceInformation, false); } #endregion