Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Microsoft.VisualStudio.TestPlatform.ObjectModel;
- using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter;
- using System.Collections.Generic;
- using System.IO;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- namespace TSTestAdapter
- {
- [DefaultExecutorUri(TSTestExecutor.ExecutorUriString)]
- [FileExtension(".ts")]
- //[FileExtension(".test.ts")]
- public class TSTestDiscoverer : ITestDiscoverer
- {
- public void DiscoverTests(IEnumerable<string> sources
- , IDiscoveryContext discoveryContext
- , Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging.IMessageLogger logger
- , ITestCaseDiscoverySink discoverySink)
- {
- GetTests(sources, discoverySink);
- }
- public static IEnumerable<TestCase> GetTests(IEnumerable<string> sourceFiles, ITestCaseDiscoverySink discoverySink)
- {
- var tests = new List<TestCase>();
- Parallel.ForEach(sourceFiles, s =>
- {
- var sourceCode = File.ReadAllText(s);
- var matches = Regex.Matches(sourceCode, @"^\s*test\s*\(\s*""(?<TestName>.*?)""\s*,?", RegexOptions.Multiline);
- foreach (Match m in matches)
- {
- var testName = m.Groups["TestName"].Value;
- var testCase = new TestCase(testName, TSTestExecutor.ExecutorUri, s);
- if (discoverySink != null)
- {
- discoverySink.SendTestCase(testCase);
- }
- tests.Add(testCase);
- }
- });
- return tests;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement