Exemplo n.º 1
0
        protected override bool Visit(ITestOutput testOutput)
        {
            var task = context.GetRemoteTask(testOutput);

            task.Output(testOutput.Output);
            return(context.ShouldContinue);
        }
Exemplo n.º 2
0
 public static ITestRunner RegisterAsServer(ITestOutput output, Options options)
 {
     var host = new ServiceHost(output);
     int i;
     for (i = 0; i < 50; i += 10) {
         try {
             host.AddServiceEndpoint(typeof(ITestOutput), BindingFactory(), "http://localhost:" + (StartPort + i) + "/");
             break;
         } catch (AddressAlreadyInUseException) {
         }
     }
     host.Open();
     var start = DateTime.Now;
     Exception final = null;
     var res = new ChannelFactory<ITestRunner>(BindingFactory(), "http://localhost:" + (StartPort + i + 1) + "/").CreateChannel();
     while (DateTime.Now - start < TimeSpan.FromSeconds(5)) {
         try {
             res.Ping();
             return res;
         } catch (Exception e) {
             final = e;
         }
     }
     throw final;
 }
        public void Run(string testExecutable, string testName, ITestOutput output)
        {
            var commandLineGenerator = new CommandLineGenerator();
            var options = TestRunnerOptions.FromDteProperties(_dte.Properties["BoostTest", "TestRunner"]);
            var testRunnerProcess = new ChildProcess(commandLineGenerator.Generate(testExecutable, testName, options));
            testRunnerProcess.StartSuspended();

            var process =
                _dte.Debugger.LocalProcesses.Cast<EnvDTE.Process>().SingleOrDefault(p => p.ProcessID == testRunnerProcess.Pid);
            if (process == null)
            {
                throw new InvalidOperationException("Couldn't find the process : " + testExecutable);
            }

            process.Attach();

            testRunnerProcess.Resume()
                .ContinueWith(
                    x =>
                    {
                        if (x.IsCompleted)
                        {
                            output.Clear();
                            output.OutputString(DateTime.Now.ToLongTimeString() + " : Test (Debug) : " + testName + "\n");
                            output.OutputString(x.Result);
                        }
                    });
        }
Exemplo n.º 4
0
 public TestAdaptedSteps()
 {
     WorkflowServices.StepFactory = new AdaptedStepsFactory();
     _workflow = new TestWorkflow();
     _context  = Substitute.For <ITestContext>();
     _out      = Substitute.For <ITestOutput>();
     _context.Out.Returns(_out);
 }
Exemplo n.º 5
0
 protected WorkflowTestsBase()
 {
     Context   = Substitute.For <ITestContext>();
     Output    = Substitute.For <ITestOutput>();
     TestFlags = new Dictionary <string, bool>();
     Context.TestFlags.Returns(TestFlags);
     Context.Out.Returns(Output);
     Workflow = new TestWorkflow();
 }
Exemplo n.º 6
0
 public Options(IList<string> args)
 {
     PipeName = Guid.NewGuid().ToString();
     Assemblies = new List<string>();
     Filters = new List<IFilter>();
     HasError = !args.Any();
     Action<string> argHandler = null;
     CrashedTest = string.Empty;
     IsChild = false;
     OutputKind output = OutputKind.Console;
     foreach (var arg in args) {
         switch (arg) {
             case "--from":
                 argHandler = Assemblies.Add;
                 break;
             case "--named":
                 argHandler = s => Filters.Add(new NameFilter(s));
                 break;
             case "--tagged":
                 argHandler = s => Filters.Add(new CategoryFilter(s, true));
                 break;
             case "--nottagged":
                 argHandler = s => Filters.Add(new CategoryFilter(s, false));
                 break;
             case "--parent":
                 IsChild = true;
                 argHandler = s => Parent = s;
                 break;
             case "--startfrom":
                 argHandler = s => {
                     Filters.Add(new SkipUntilFilter(s));
                     CrashedTest = s;
                 };
                 break;
             case "--teamcity":
                 output = OutputKind.Teamcity;
                 argHandler = null;
                 break;
             default:
                 if (argHandler == null) {
                     HasError = true;
                     return;
                 }
                 argHandler(arg);
                 break;
         }
     }
     Output = output == OutputKind.Console ? (ITestOutput)new ConsoleWriter() : new TeamcityOutput();
 }
Exemplo n.º 7
0
        _TestOutput AdaptTestOutput(ITestOutput message)
        {
            var testCollectionUniqueID = UniqueIDForTestCollection(assemblyUniqueID, message.TestCollection);
            var testClassUniqueID      = UniqueIDForTestClass(testCollectionUniqueID, message.TestClass);
            var testMethodUniqueID     = UniqueIDForTestMethod(testClassUniqueID, message.TestMethod);
            var testCaseUniqueID       = message.TestCase.UniqueID;
            var testUniqueID           = UniqueIDForTest(testCaseUniqueID, message.Test);

            return(new _TestOutput
            {
                AssemblyUniqueID = assemblyUniqueID,
                Output = message.Output,
                TestCaseUniqueID = testCaseUniqueID,
                TestCollectionUniqueID = testCollectionUniqueID,
                TestClassUniqueID = testClassUniqueID,
                TestMethodUniqueID = testMethodUniqueID,
                TestUniqueID = testUniqueID
            });
        }
        public void Run(string testExecutable, string testName, ITestOutput output)
        {
            var commandLineGenerator = new CommandLineGenerator();
            var options = TestRunnerOptions.FromDteProperties(_dte.Properties["BoostTest", "TestRunner"]);
            var commandLine = commandLineGenerator.Generate(testExecutable, testName, options);

            var testRunnerProcess = new ChildProcess(commandLine);
            testRunnerProcess.Start()
                    .ContinueWith(
                    result =>
                    {
                        if (result.IsCompleted)
                        {
                            output.Clear();
                            output.OutputString(DateTime.Now.ToLongTimeString() + " : Test : " + testName + "\n");
                            output.OutputString(result.Result);
                        }
                    });
        }
Exemplo n.º 9
0
 public void OnAfterDeserialize()
 {
     gen    = (Generator)Serializer.Deserialize(serializedGen);
     inputs = (ITestInput[])Serializer.Deserialize(serializedInputs);
     output = (ITestOutput)Serializer.Deserialize(serializedOutput);
 }
Exemplo n.º 10
0
 /// <summary>
 /// Called when an instance of <see cref="ITestOutput"/> is sent to the message sink.
 /// </summary>
 /// <param name="testCaseOutput">The message.</param>
 /// <returns>Return <c>true</c> to continue executing tests; <c>false</c> otherwise.</returns>
 protected virtual bool Visit(ITestOutput testCaseOutput)
 {
     return(true);
 }
Exemplo n.º 11
0
 public TestRunner(Options options)
 {
     Complete = new ManualResetEvent(false);
     _options = options;
     _output = ConnectionFactory.RegisterAsClient(this, options);
 }