Пример #1
0
        void SetupRemoteTestSinks(Stream stream)
        {
            var binaryWriter = new BinaryWriter(stream);

            _testDiscoverySink = new RemoteTestDiscoverySink(binaryWriter);
            _testExecutionSink = new RemoteTestExecutionSink(binaryWriter);
        }
Пример #2
0
        private void UseTestSinksWithSockets(NetworkStream networkStream)
        {
            var binaryWriter = new BinaryWriter(networkStream);

            _testDiscoverySink = new BinaryWriterTestDiscoverySink(binaryWriter);
            _testExecutionSink = new BinaryWriterTestExecutionSink(binaryWriter);
        }
Пример #3
0
 public Discoverer(TestRequest request, IMspecController controller, ITestDiscoverySink sink, RemoteTaskDepot depot, CancellationToken token)
 {
     this.request    = request;
     this.controller = controller;
     this.sink       = sink;
     this.depot      = depot;
     this.token      = token;
 }
Пример #4
0
 public TestExploreListener(ITestDiscoverySink sink, CommandLineOptions options, string assemblyPath)
     : base(options, assemblyPath)
 {
     _sink = sink;
 }
 public VisualStudioAssemblyScanner(IServiceProvider services)
 {
     provider = (ISourceInformationProvider) services.GetService(typeof (ISourceInformationProvider));
     sink = (ITestDiscoverySink) services.GetService(typeof (ITestDiscoverySink));
     converter = new VisualStudioTestConverter();
 }
Пример #6
0
 private void UseTestSinksWithStandardOutputStreams()
 {
     testDiscoverySink = new StreamingTestDiscoverySink(Console.OpenStandardOutput());
     testExecutionSink = new StreamingTestExecutionSink(Console.OpenStandardOutput());
 }
Пример #7
0
 void SetupConsoleTestSinks()
 {
     _testDiscoverySink = new StreamingTestDiscoverySink(Console.OpenStandardOutput());
     _testExecutionSink = new StreamingTestExecutionSink(Console.OpenStandardOutput());
 }
Пример #8
0
 public override void SetUp()
 {
     base.SetUp();
     _testSink = new RemoteTestDiscoverySink(BinaryWriter);
 }
Пример #9
0
 public DiscoveryVisitor(ITestDiscoverySink sink)
 {
     _sink = sink;
 }
Пример #10
0
        void ExecuteAssembly(object consoleLock, string assemblyName, CommandLine options)
        {
            if (cancel)
            {
                return;
            }

            try
            {
                var name             = new AssemblyName(assemblyName);
                var assembly         = Reflector.Wrap(Assembly.Load(name));
                var framework        = GetFramework(assembly);
                var discoverer       = framework.GetDiscoverer(assembly);
                var executor         = framework.GetExecutor(name);
                var discoveryVisitor = new TestDiscoveryVisitor();

                discoverer.Find(includeSourceInformation: true, messageSink: discoveryVisitor, options: new TestFrameworkOptions());
                discoveryVisitor.Finished.WaitOne();

                if (options.List)
                {
                    ITestDiscoverySink discoverySink = null;
                    if (options.DesignTime)
                    {
                        discoverySink = (ITestDiscoverySink)_services.GetService(typeof(ITestDiscoverySink));
                    }

                    lock (consoleLock)
                    {
                        foreach (var test in discoveryVisitor.TestCases)
                        {
                            if (discoverySink != null)
                            {
                                discoverySink.SendTest(test.ToDesignTimeTest());
                            }

                            Console.WriteLine(test.DisplayName);
                        }
                    }

                    return;
                }

                var executionOptions = new XunitExecutionOptions {
                    DisableParallelization = !options.ParallelizeTestCollections, MaxParallelThreads = options.MaxParallelThreads
                };
                var resultsVisitor = CreateVisitor(consoleLock, options);

                var tests = discoveryVisitor.TestCases;
                if (options.Tests != null && options.Tests.Count > 0)
                {
                    tests = tests.Where(t => IsTestNameMatch(t, options.Tests)).ToList();
                }

                executor.RunTests(tests, resultsVisitor, executionOptions);
                resultsVisitor.Finished.WaitOne();

                // When executing under TeamCity, we record the results in a format TeamCity understands, but do not return an error code.
                // This causes TeamCity to treat the step as completed, but the build as failed. We'll work around this by special casing the TeamCityVisitor
                var teamCityVisitor = resultsVisitor as TeamCityVisitor;
                if (teamCityVisitor != null)
                {
                    failed = teamCityVisitor.Failed > 0;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0}: {1}", ex.GetType().FullName, ex.Message);
                Console.WriteLine(ex);

                failed = true;
            }
        }