Exemple #1
0
        public override IEnumerable <IXunitTestCase> Discover(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute)
        {
            var results = new List <IXunitTestCase>();

            if (testMethod.Method.GetParameters().Any())
            {
                results.Add(new ExecutionErrorTestCase(DiagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), testMethod, "[VsFact] methods are not allowed to have parameters. Did you mean to use [VsTheory]?"));
            }
            else if (testMethod.Method.IsGenericMethodDefinition)
            {
                results.Add(new ExecutionErrorTestCase(DiagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), testMethod, "[VsFact] methods are not allowed to be generic."));
            }
            else
            {
                try
                {
                    results.AddRange(VsTestCaseFactory.CreateTestCases(testMethod, null, discoveryOptions.MethodDisplayOrDefault(), DiagnosticMessageSink));
                }
                catch (Exception exception)
                {
                    results.Add(new ExceptionTestCase(exception, DiagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), testMethod));
                }
            }

            return(results);
        }
Exemple #2
0
        void OneInstancePerMajorVersion()
        {
            var installations = new VsInstallation[]
            {
                new VsInstallation(new Version(15, 1), string.Empty, string.Empty),
                new VsInstallation(new Version(15, 7), string.Empty, "VisualStudio/15.7.3+27703.2026"),
            };

            Assert.Single(VsTestCaseFactory.FilterInstallations(installations, new VsTestSettings()));
        }
Exemple #3
0
        void PreferLowest(int expectedMinorVersion, bool preferLowest)
        {
            var installations = new VsInstallation[]
            {
                new VsInstallation(new Version(15, 1), string.Empty, string.Empty),
                new VsInstallation(new Version(15, 7), string.Empty, "VisualStudio/15.7.3+27703.2026"),
            };

            var testSettings = new VsTestSettings
            {
                VsPreferLowestMinorVersion = preferLowest,
            };

            Assert.Equal(expectedMinorVersion, VsTestCaseFactory.FilterInstallations(installations, testSettings).First().Version.Minor);
        }
Exemple #4
0
        void AllowPreview(bool allow)
        {
            var installations = new[] { new VsInstallation(new Version(15, 8), string.Empty, "VisualStudioPreview/15.8.0-pre.2.0+27729.1") };
            var testSettings  = new VsTestSettings
            {
                VsAllowPreview = allow,
            };

            if (allow)
            {
                Assert.NotEmpty(VsTestCaseFactory.FilterInstallations(installations, testSettings));
            }
            else
            {
                Assert.Empty(VsTestCaseFactory.FilterInstallations(installations, testSettings));
            }
        }
        void FilterInstallations_PreferSpecificInstallation(string version, string expectedName)
        {
            var installationPath = "C:\\Program Files (x86)\\Microsoft Visual Studio 15.0";
            var installations    = new[]
            {
                new VsInstallation(new Version(14, 0, 0), string.Empty, "VisualStudio/14.0.0"),
                new VsInstallation(new Version(15, 0, 3), string.Empty, "VisualStudio/15.0.3"),
                new VsInstallation(new Version(15, 0, 2), installationPath, "VisualStudio/15.0.2"),
                new VsInstallation(new Version(15, 0, 1), string.Empty, "VisualStudio/15.0.1"),
            };

            var applicationPath = VisualStudioUtil.GetApplicationPath(installationPath);
            var installation    = VsTestCaseFactory.FilterInstallations(installations, new VsTestSettings {
                Version = version
            }, preferedAppPath: applicationPath).First();

            Assert.Equal(expectedName, installation.Name);
        }
 protected override IEnumerable <IXunitTestCase> CreateTestCasesForTheory(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo theoryAttribute)
 => VsTestCaseFactory.CreateTheoryTestCases(testMethod, discoveryOptions.MethodDisplayOrDefault(), DiagnosticMessageSink);
 protected override IEnumerable <IXunitTestCase> CreateTestCasesForSkippedDataRow(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo theoryAttribute, object[] dataRow, string skipReason)
 => VsTestCaseFactory.CreateSkippedDataRowTestCases(testMethod, discoveryOptions.MethodDisplayOrDefault(), DiagnosticMessageSink, dataRow, skipReason);