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); }
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())); }
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); }
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);