Example #1
0
        static TestMessageVisitor <IMessageSinkMessage> CreateVisitor(object consoleLock, bool quiet, string defaultDirectory, XElement assemblyElement, bool teamCity, bool appVeyor)
        {
            TestMessageVisitor visitor = null;

            if (teamCity)
            {
                visitor = new TeamCityVisitor(consoleLogger, assemblyElement, () => cancel, displayNameFormatter: teamCityDisplayNameFormatter);
            }
            else if (appVeyor)
            {
                visitor = new AppVeyorVisitor(consoleLock, defaultDirectory, assemblyElement, () => cancel, completionMessages);
            }
            else
            {
                visitor = new StandardOutputVisitor(consoleLock, quiet, defaultDirectory, assemblyElement, () => cancel, completionMessages);
            }

            var assembly = typeof(Program).Assembly;
            var visitors = new List <TestMessageVisitor>();
            var dir      = Path.GetDirectoryName(assembly.Location) ?? Environment.CurrentDirectory;

            foreach (var file in Directory.GetFiles(dir, "xunit.extensions*.dll"))
            {
                visitors.AddRange(Assembly.LoadFile(file)
                                  .GetTypes()
                                  .Where(t => t.IsSubclassOf(typeof(TestMessageVisitor)))
                                  .Select(t => (TestMessageVisitor)Activator.CreateInstance(t)).ToArray());
            }
            visitors.Add(visitor);

            return(new TestMessageVisitorObserver <IMessageSinkMessage>(visitors.ToArray()));
        }
Example #2
0
 public DesignTimeExecutionVisitor(
     ITestExecutionSink sink,
     IDictionary <ITestCase, VsTestCase> conversions,
     TestMessageVisitor <ITestAssemblyFinished> next)
 {
     _sink        = sink;
     _conversions = conversions;
     _next        = next;
 }
    public void SignalsEventWhenMessageOfSpecifiedTypeIsSeen()
    {
        var visitor = new TestMessageVisitor<IDiscoveryCompleteMessage>();
        var message1 = Substitute.For<IMessageSinkMessage>();
        var message2 = Substitute.For<IDiscoveryCompleteMessage>();

        visitor.OnMessage(message1);
        Assert.False(visitor.Finished.WaitOne(0));

        visitor.OnMessage(message2);
        Assert.True(visitor.Finished.WaitOne(0));
    }
    public void FinishedEventNotSignaledByDefault()
    {
        var visitor = new TestMessageVisitor<IMessageSinkMessage>();

        Assert.False(visitor.Finished.WaitOne(0));
    }