static AssemblyResult Execute(string assemblyPath, Options options) { using (var environment = new ExecutionEnvironment(assemblyPath)) { if (ShouldUseTeamCityListener(options)) using (var listener = new TeamCityListener()) return environment.RunAssembly(options, listener); if (ShouldUseAppVeyorListener()) using (var listener = new AppVeyorListener()) return environment.RunAssembly(options, listener); using (var listener = new ConsoleListener()) return environment.RunAssembly(options, listener); } }
static AssemblyResult Execute(string assemblyPath, Options options) { if (ShouldUseTeamCityListener(options)) { using (var listener = new TeamCityListener()) return Execute(assemblyPath, options, listener); } if (ShouldUseAppVeyorListener()) { using (var listener = new AppVeyorListener()) return Execute(assemblyPath, options, listener); } using (var listener = new ConsoleListener()) return Execute(assemblyPath, options, listener); }
static AssemblyResult Execute(string assemblyPath, Options options) { if (ShouldUseTeamCityListener(options)) { using (var listener = new TeamCityListener()) return(Execute(assemblyPath, options, listener)); } if (ShouldUseAppVeyorListener()) { using (var listener = new AppVeyorListener()) return(Execute(assemblyPath, options, listener)); } using (var listener = new ConsoleListener()) return(Execute(assemblyPath, options, listener)); }
static AssemblyResult Execute(string assemblyPath, Options options) { using (var environment = new ExecutionEnvironment(assemblyPath)) { if (ShouldUseTeamCityListener(options)) { using (var listener = new TeamCityListener()) return(environment.RunAssembly(options, listener)); } if (ShouldUseAppVeyorListener()) { using (var listener = new AppVeyorListener()) return(environment.RunAssembly(options, listener)); } using (var listener = new ConsoleListener()) return(environment.RunAssembly(options, listener)); } }
public void ShouldReportResultsToAppVeyorBuildWorkerApi() { var results = new List<AppVeyorListener.TestResult>(); var httpClient = new HttpClient(new FakeHandler(request => { request.ShouldNotBeNull(); request.RequestUri.AbsoluteUri.ShouldEqual("http://localhost:4567/api/tests"); request.Headers.Accept.ShouldContain(new MediaTypeWithQualityHeaderValue("application/json")); request.Content.Headers.ContentType.ToString().ShouldEqual("application/json; charset=utf-8"); var requestContent = request.Content.ReadAsStringAsync().Result; results.Add(new JavaScriptSerializer().Deserialize<AppVeyorListener.TestResult>(requestContent)); return new HttpResponseMessage { StatusCode = HttpStatusCode.Accepted }; })); using (var console = new RedirectedConsole()) using (var listener = new AppVeyorListener("http://localhost:4567", httpClient)) { var convention = SelfTestConvention.Build(); convention.CaseExecution.Skip(x => x.Method.Has<SkipAttribute>(), x => x.Method.GetCustomAttribute<SkipAttribute>().Reason); convention.Parameters.Add<InputAttributeParameterSource>(); typeof(PassFailTestClass).Run(listener, convention); var testClass = typeof(PassFailTestClass).FullName; console.Lines() .ShouldEqual( "Console.Out: Fail", "Console.Error: Fail", "Console.Out: Pass", "Console.Error: Pass"); results.Count.ShouldEqual(4); foreach (var result in results) { result.testFramework.ShouldEqual("Fixie"); result.fileName.ShouldEqual("Fixie.Tests.dll"); } results[0].testName.ShouldEqual(testClass + ".SkipWithReason"); results[0].outcome.ShouldEqual("Skipped"); results[0].durationMilliseconds.ShouldEqual("0"); results[0].ErrorMessage.ShouldEqual("Skipped with reason."); results[0].ErrorStackTrace.ShouldBeNull(); results[0].StdOut.ShouldBeNull(); results[1].testName.ShouldEqual(testClass + ".SkipWithoutReason"); results[1].outcome.ShouldEqual("Skipped"); results[1].durationMilliseconds.ShouldEqual("0"); results[1].ErrorMessage.ShouldBeNull(); results[1].ErrorStackTrace.ShouldBeNull(); results[1].StdOut.ShouldBeNull(); results[2].testName.ShouldEqual(testClass + ".Fail"); results[2].outcome.ShouldEqual("Failed"); int.Parse(results[2].durationMilliseconds).ShouldBeGreaterThanOrEqualTo(0); results[2].ErrorMessage.ShouldEqual("Fixie.Tests.FailureException"); results[2].ErrorStackTrace.Lines().Select(CleanBrittleValues) .ShouldEqual("'Fail' failed!", " at Fixie.Tests.ConsoleRunner.AppVeyorListenerTests.PassFailTestClass.Fail() in " + PathToThisFile() + ":line #"); results[2].StdOut.Lines().ShouldEqual("Console.Out: Fail", "Console.Error: Fail"); results[3].testName.ShouldEqual(testClass + ".Pass(123)"); results[3].outcome.ShouldEqual("Passed"); int.Parse(results[3].durationMilliseconds).ShouldBeGreaterThanOrEqualTo(0); results[3].ErrorMessage.ShouldBeNull(); results[3].ErrorStackTrace.ShouldBeNull(); results[3].StdOut.Lines().ShouldEqual("Console.Out: Pass", "Console.Error: Pass"); } }