Beispiel #1
0
        public void InitializeShouldNotSetInIsolataionToTrueIfEnvironmentVariablesNotSpecified()
        {
            var settingsXml = @"<RunSettings><RunConfiguration></RunConfiguration></RunSettings>";

            /// Arrange.
            var fileName = "C:\\temp\\r.runsettings";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);

            // Assert.
            Assert.IsFalse(CommandLineOptions.Instance.InIsolation);
            Assert.IsNull(this.settingsProvider.QueryRunSettingsNode(InIsolationArgumentExecutor.RunSettingsPath));
        }
Beispiel #2
0
        public void InitializeShouldAddDefaultSettingsIfNotPresent()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.runsettings";
            var settingsXml = "<RunSettings></RunSettings>";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);

            // Assert.
            Assert.IsNotNull(this.settingsProvider.ActiveRunSettings);
            RunConfiguration runConfiguration =
                XmlRunSettingsUtilities.GetRunConfigurationNode(this.settingsProvider.ActiveRunSettings.SettingsXml);

            Assert.AreEqual(runConfiguration.ResultsDirectory, Constants.DefaultResultsDirectory);
            Assert.AreEqual(runConfiguration.TargetFramework.ToString(), Framework.DefaultFramework.ToString());
            Assert.AreEqual(runConfiguration.TargetPlatform, Constants.DefaultPlatform);
        }
Beispiel #3
0
        public void InitializeShouldUpdateCommandLineOptionsArchitectureAndFxIfProvided()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.runsettings";
            var settingsXml = $"<RunSettings><RunConfiguration><TargetPlatform>{Architecture.X64.ToString()}</TargetPlatform><TargetFrameworkVersion>{Constants.DotNetFramework46}</TargetFrameworkVersion></RunConfiguration></RunSettings>";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);

            // Assert.
            Assert.IsTrue(CommandLineOptions.Instance.ArchitectureSpecified);
            Assert.IsTrue(CommandLineOptions.Instance.FrameworkVersionSpecified);
            Assert.AreEqual(Architecture.X64, CommandLineOptions.Instance.TargetArchitecture);
            Assert.AreEqual(Constants.DotNetFramework46, CommandLineOptions.Instance.TargetFrameworkVersion.Name);
        }
Beispiel #4
0
        public void InitializeShouldSetActiveRunSettingsWithCodeCoverageData()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.runsettings";
            var settingsXml = "<RunSettings></RunSettings>";

            CommandLineOptions.Instance.EnableCodeCoverage = true;
            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);

            // Assert.
            Assert.IsNotNull(this.settingsProvider.ActiveRunSettings);
            StringAssert.Contains(this.settingsProvider.ActiveRunSettings.SettingsXml, $"<RunSettings>\r\n  <DataCollectionRunSettings>\r\n    <DataCollectors>\r\n      <DataCollector uri=\"datacollector://microsoft/CodeCoverage/2.0\" assemblyQualifiedName=\"Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=15.0.0.0 , Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\" friendlyName=\"Code Coverage\">\r\n        <Configuration>\r\n          <CodeCoverage>\r\n            <ModulePaths>\r\n              <Exclude>\r\n                <ModulePath>.*CPPUnitTestFramework.*</ModulePath>\r\n                <ModulePath>.*vstest.console.*</ModulePath>\r\n                <ModulePath>.*microsoft.intellitrace.*</ModulePath>\r\n                <ModulePath>.*vstest.executionengine.*</ModulePath>\r\n                <ModulePath>.*vstest.discoveryengine.*</ModulePath>\r\n                <ModulePath>.*microsoft.teamfoundation.testplatform.*</ModulePath>\r\n                <ModulePath>.*microsoft.visualstudio.testplatform.*</ModulePath>\r\n                <ModulePath>.*microsoft.visualstudio.testwindow.*</ModulePath>\r\n                <ModulePath>.*microsoft.visualstudio.mstest.*</ModulePath>\r\n                <ModulePath>.*microsoft.visualstudio.qualitytools.*</ModulePath>\r\n                <ModulePath>.*microsoft.vssdk.testhostadapter.*</ModulePath>\r\n                <ModulePath>.*microsoft.vssdk.testhostframework.*</ModulePath>\r\n                <ModulePath>.*qtagent32.*</ModulePath>\r\n                <ModulePath>.*msvcr.*dll$</ModulePath>\r\n                <ModulePath>.*msvcp.*dll$</ModulePath>\r\n                <ModulePath>.*clr.dll$</ModulePath>\r\n                <ModulePath>.*clr.ni.dll$</ModulePath>\r\n                <ModulePath>.*clrjit.dll$</ModulePath>\r\n                <ModulePath>.*clrjit.ni.dll$</ModulePath>\r\n                <ModulePath>.*mscoree.dll$</ModulePath>\r\n                <ModulePath>.*mscoreei.dll$</ModulePath>\r\n                <ModulePath>.*mscoreei.ni.dll$</ModulePath>\r\n                <ModulePath>.*mscorlib.dll$</ModulePath>\r\n                <ModulePath>.*mscorlib.ni.dll$</ModulePath>\r\n              </Exclude>\r\n            </ModulePaths>\r\n            <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>\r\n            <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>\r\n            <CollectFromChildProcesses>True</CollectFromChildProcesses>\r\n            <CollectAspDotNet>false</CollectAspDotNet>\r\n            <SymbolSearchPaths />\r\n            <Functions>\r\n              <Exclude>\r\n                <Function>^std::.*</Function>\r\n                <Function>^ATL::.*</Function>\r\n                <Function>.*::__GetTestMethodInfo.*</Function>\r\n                <Function>.*__CxxPureMSILEntry.*</Function>\r\n                <Function>^Microsoft::VisualStudio::CppCodeCoverageFramework::.*</Function>\r\n                <Function>^Microsoft::VisualStudio::CppUnitTestFramework::.*</Function>\r\n                <Function>.*::YOU_CAN_ONLY_DESIGNATE_ONE_.*</Function>\r\n                <Function>^__.*</Function>\r\n                <Function>.*::__.*</Function>\r\n              </Exclude>\r\n            </Functions>\r\n            <Attributes>\r\n              <Exclude>\r\n                <Attribute>^System.Diagnostics.DebuggerHiddenAttribute$</Attribute>\r\n                <Attribute>^System.Diagnostics.DebuggerNonUserCodeAttribute$</Attribute>\r\n                <Attribute>^System.Runtime.CompilerServices.CompilerGeneratedAttribute$</Attribute>\r\n                <Attribute>^System.CodeDom.Compiler.GeneratedCodeAttribute$</Attribute>\r\n                <Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>\r\n              </Exclude>\r\n            </Attributes>\r\n            <Sources>\r\n              <Exclude>\r\n                <Source>.*\\\\atlmfc\\\\.*</Source>\r\n                <Source>.*\\\\vctools\\\\.*</Source>\r\n                <Source>.*\\\\public\\\\sdk\\\\.*</Source>\r\n                <Source>.*\\\\externalapis\\\\.*</Source>\r\n                <Source>.*\\\\microsoft sdks\\\\.*</Source>\r\n                <Source>.*\\\\vc\\\\include\\\\.*</Source>\r\n                <Source>.*\\\\msclr\\\\.*</Source>\r\n                <Source>.*\\\\ucrt\\\\.*</Source>\r\n              </Exclude>\r\n            </Sources>\r\n            <CompanyNames />\r\n            <PublicKeyTokens />\r\n          </CodeCoverage>\r\n        </Configuration>\r\n      </DataCollector>\r\n    </DataCollectors>\r\n  </DataCollectionRunSettings>\r\n  <RunConfiguration>\r\n    <ResultsDirectory>{Constants.DefaultResultsDirectory}</ResultsDirectory>\r\n    <TargetPlatform>{Constants.DefaultPlatform}</TargetPlatform>\r\n    <TargetFrameworkVersion>{Framework.DefaultFramework.Name}</TargetFrameworkVersion>\r\n  </RunConfiguration>\r\n</RunSettings>");
        }
Beispiel #5
0
        public void InitializeShouldPreserveActualJapaneseString()
        {
            var runsettingsFile = Path.Combine(Path.GetTempPath(), "InitializeShouldPreserveActualJapaneseString.runsettings");
            var settingsXml     = @"<RunSettings><RunConfiguration><ResultsDirectory>C:\新しいフォルダー</ResultsDirectory></RunConfiguration></RunSettings>";

            File.WriteAllText(runsettingsFile, settingsXml, Encoding.UTF8);

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                null);

            executor.Initialize(runsettingsFile);
            Assert.IsTrue(this.settingsProvider.ActiveRunSettings.SettingsXml.Contains(@"C:\新しいフォルダー"));
            File.Delete(runsettingsFile);
        }
        public void InitializeShouldSetActiveRunSettingsForTestSettingsFiles()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.testsettings";
            var settingsXml = "<TestSettings></TestSettings>";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);


            // Assert.
            Assert.IsNotNull(this.settingsProvider.ActiveRunSettings);

            var expected =
                $"<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
                $"<RunSettings>\r\n" +
                $"  <RunConfiguration>\r\n" +
                $"    <ResultsDirectory>{Constants.DefaultResultsDirectory}</ResultsDirectory>\r\n" +
                $"    <TargetPlatform>{Constants.DefaultPlatform}</TargetPlatform>\r\n" +
                $"    <TargetFrameworkVersion>{Framework.DefaultFramework.Name}</TargetFrameworkVersion>\r\n" +
                $"  </RunConfiguration>\r\n" +
                $"  <MSTest>\r\n" +
                $"    <SettingsFile>C:\\temp\\r.testsettings</SettingsFile>\r\n" +
                $"    <ForcedLegacyMode>true</ForcedLegacyMode>\r\n" +
                $"  </MSTest>\r\n" +
                $"  <DataCollectionRunSettings>\r\n" +
                $"    <DataCollectors />\r\n" +
                $"  </DataCollectionRunSettings>\r\n" +
                $"</RunSettings>";

            StringAssert.Contains(this.settingsProvider.ActiveRunSettings.SettingsXml, expected);
        }
Beispiel #7
0
        public void InitializeShouldSetSettingsFileForCommandLineOptions()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.runsettings";
            var settingsXml = "<RunSettings></RunSettings>";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);

            // Assert.
            Assert.AreEqual(fileName, CommandLineOptions.Instance.SettingsFile);
        }
Beispiel #8
0
        public void InitializeShouldThrowIfRunSettingsSchemaDoesNotMatch()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.runsettings";
            var settingsXml = "<BadRunSettings></BadRunSettings>";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);

            executor.FileHelper = mockFileHelper.Object;

            // Act and Assert.
            ExceptionUtilities.ThrowsException <SettingsException>(
                () => executor.Initialize(fileName),
                "Settings file provided does not conform to required format.");
        }
Beispiel #9
0
        public void InitializeShouldNotUpdateCommandLineOptionsArchitectureAndFxIfNotProvided()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.runsettings";
            var settingsXml = "<RunSettings><RunConfiguration></RunConfiguration></RunSettings>";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);

            // Assert.
            Assert.IsFalse(CommandLineOptions.Instance.ArchitectureSpecified);
            Assert.IsFalse(CommandLineOptions.Instance.FrameworkVersionSpecified);
        }
        public void InitializeShouldUpdateTestCaseFilterIfProvided()
        {
            // Arrange.
            var fileName    = "C:\\temp\\r.runsettings";
            var filter      = "TestCategory=Included";
            var settingsXml = $"<RunSettings><RunConfiguration><TestCaseFilter>{filter}</TestCaseFilter></RunConfiguration></RunSettings>";

            var executor = new TestableRunSettingsArgumentExecutor(
                CommandLineOptions.Instance,
                this.settingsProvider,
                settingsXml);

            // Setup mocks.
            var mockFileHelper = new Mock <IFileHelper>();

            mockFileHelper.Setup(fh => fh.Exists(It.IsAny <string>())).Returns(true);
            executor.FileHelper = mockFileHelper.Object;

            // Act.
            executor.Initialize(fileName);

            // Assert.
            Assert.AreEqual(filter, CommandLineOptions.Instance.TestCaseFilterValue);
        }