diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-05-13 11:40:45 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-05-13 12:35:15 -0500 |
commit | 031991f32f059b64374e6d257cbe573304dd577f (patch) | |
tree | 9d11ebb5d8595bf45c507f38d637b14915af7630 /src/internal/WixBuildTools.TestSupport/XunitExtensions/SkippableTheoryDiscoverer.cs | |
parent | ad6d2636f60b04ee68656f99fb3bd56a86ba5983 (diff) | |
download | wix-031991f32f059b64374e6d257cbe573304dd577f.tar.gz wix-031991f32f059b64374e6d257cbe573304dd577f.tar.bz2 wix-031991f32f059b64374e6d257cbe573304dd577f.zip |
Add ability to skip tests at runtime, and skip long running cache tests
6665
Diffstat (limited to 'src/internal/WixBuildTools.TestSupport/XunitExtensions/SkippableTheoryDiscoverer.cs')
-rw-r--r-- | src/internal/WixBuildTools.TestSupport/XunitExtensions/SkippableTheoryDiscoverer.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/internal/WixBuildTools.TestSupport/XunitExtensions/SkippableTheoryDiscoverer.cs b/src/internal/WixBuildTools.TestSupport/XunitExtensions/SkippableTheoryDiscoverer.cs new file mode 100644 index 00000000..cf4e2b43 --- /dev/null +++ b/src/internal/WixBuildTools.TestSupport/XunitExtensions/SkippableTheoryDiscoverer.cs | |||
@@ -0,0 +1,41 @@ | |||
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
2 | |||
3 | namespace WixBuildTools.TestSupport.XunitExtensions | ||
4 | { | ||
5 | using System.Collections.Generic; | ||
6 | using Xunit.Abstractions; | ||
7 | using Xunit.Sdk; | ||
8 | |||
9 | public class SkippableTheoryDiscoverer : IXunitTestCaseDiscoverer | ||
10 | { | ||
11 | private IMessageSink DiagnosticMessageSink { get; } | ||
12 | private TheoryDiscoverer TheoryDiscoverer { get; } | ||
13 | |||
14 | public SkippableTheoryDiscoverer(IMessageSink diagnosticMessageSink) | ||
15 | { | ||
16 | this.DiagnosticMessageSink = diagnosticMessageSink; | ||
17 | |||
18 | this.TheoryDiscoverer = new TheoryDiscoverer(diagnosticMessageSink); | ||
19 | } | ||
20 | |||
21 | public IEnumerable<IXunitTestCase> Discover(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) | ||
22 | { | ||
23 | var defaultMethodDisplay = discoveryOptions.MethodDisplayOrDefault(); | ||
24 | var defaultMethodDisplayOptions = discoveryOptions.MethodDisplayOptionsOrDefault(); | ||
25 | |||
26 | // Unlike fact discovery, the underlying algorithm for theories is complex, so we let the theory discoverer | ||
27 | // do its work, and do a little on-the-fly conversion into our own test cases. | ||
28 | foreach (var testCase in this.TheoryDiscoverer.Discover(discoveryOptions, testMethod, factAttribute)) | ||
29 | { | ||
30 | if (testCase is XunitTheoryTestCase) | ||
31 | { | ||
32 | yield return new SkippableTheoryTestCase(this.DiagnosticMessageSink, defaultMethodDisplay, defaultMethodDisplayOptions, testCase.TestMethod); | ||
33 | } | ||
34 | else | ||
35 | { | ||
36 | yield return new SkippableFactTestCase(this.DiagnosticMessageSink, defaultMethodDisplay, defaultMethodDisplayOptions, testCase.TestMethod, testCase.TestMethodArguments); | ||
37 | } | ||
38 | } | ||
39 | } | ||
40 | } | ||
41 | } | ||