public void ListContentSupport() { IBoostTestRunner runner = A.Fake <IBoostTestRunner>(); string output = null; A.CallTo(() => runner.Capabilities).Returns(new BoostTestRunnerCapabilities { ListContent = true, Version = false }); A.CallTo(() => runner.Execute(A <BoostTestRunnerCommandLineArgs> ._, A <BoostTestRunnerSettings> ._, A <IProcessExecutionContext> ._)).Invokes((call) => { BoostTestRunnerCommandLineArgs args = (BoostTestRunnerCommandLineArgs)call.Arguments.First(); if ((args.ListContent.HasValue) && (args.ListContent.Value == ListContentFormat.DOT)) { output = TestHelper.CopyEmbeddedResourceToDirectory("BoostTestAdapterNunit.Resources.ListContentDOT.sample.8.list.content.gv", args.StandardErrorFile); } }).Returns(0); FakeBoostTestRunnerFactory factory = new FakeBoostTestRunnerFactory(runner); ListContentDiscoverer discoverer = new ListContentDiscoverer(factory, DummyVSProvider.Default); DefaultTestContext context = new DefaultTestContext(); DefaultTestCaseDiscoverySink sink = new DefaultTestCaseDiscoverySink(); discoverer.DiscoverTests(new[] { "a.exe", }, context, sink); // Ensure proper test runner execution Assert.That(factory.ProvisionedRunners.Count, Is.EqualTo(1)); foreach (IBoostTestRunner provisioned in factory.ProvisionedRunners.Select(provision => provision.Item3)) { A.CallTo(() => provisioned.Execute(A <BoostTestRunnerCommandLineArgs> ._, A <BoostTestRunnerSettings> ._, A <IProcessExecutionContext> ._)). WhenArgumentsMatch((arguments) => { BoostTestRunnerCommandLineArgs args = (BoostTestRunnerCommandLineArgs)arguments.First(); return((args.ListContent.HasValue) && (args.ListContent.Value == ListContentFormat.DOT) && (!string.IsNullOrEmpty(args.StandardErrorFile))); }). MustHaveHappened(); } // Ensure proper test discovery Assert.That(sink.Tests.Count, Is.EqualTo(8)); AssertLabelTrait(sink.Tests.FirstOrDefault((vstest) => (vstest.FullyQualifiedName == "test_2")), "l1"); AssertLabelTrait(sink.Tests.FirstOrDefault((vstest) => (vstest.FullyQualifiedName == "test_6")), "l1"); var test_8 = sink.Tests.FirstOrDefault((vstest) => (vstest.FullyQualifiedName == "test_8")); AssertLabelTrait(test_8, "l1"); AssertLabelTrait(test_8, "l2"); AssertLabelTrait(test_8, "l3 withaspace"); Assert.That(output, Is.Not.Null); // Ensure proper environment cleanup Assert.That(File.Exists(output), Is.False); }
public void ListContentSupport() { IBoostTestRunner runner = A.Fake<IBoostTestRunner>(); string output = null; A.CallTo(() => runner.ListContentSupported).Returns(true); A.CallTo(() => runner.Execute(A<BoostTestRunnerCommandLineArgs>._, A<BoostTestRunnerSettings>._, A<IProcessExecutionContext>._)).Invokes((call) => { BoostTestRunnerCommandLineArgs args = (BoostTestRunnerCommandLineArgs) call.Arguments.First(); if ((args.ListContent.HasValue) && (args.ListContent.Value == ListContentFormat.DOT)) { output = TestHelper.CopyEmbeddedResourceToDirectory("BoostTestAdapterNunit.Resources.ListContentDOT.sample.8.list.content.gv", args.StandardErrorFile); } }); FakeBoostTestRunnerFactory factory = new FakeBoostTestRunnerFactory(runner); ListContentDiscoverer discoverer = new ListContentDiscoverer(factory, DummyVSProvider.Default); DefaultTestContext context = new DefaultTestContext(); DefaultTestCaseDiscoverySink sink = new DefaultTestCaseDiscoverySink(); discoverer.DiscoverTests(new[] { "a.exe", }, context, sink); // Ensure proper test runner execution Assert.That(factory.ProvisionedRunners.Count, Is.EqualTo(1)); foreach (IBoostTestRunner provisioned in factory.ProvisionedRunners.Select(provision => provision.Item3)) { A.CallTo(() => provisioned.Execute(A<BoostTestRunnerCommandLineArgs>._, A<BoostTestRunnerSettings>._, A<IProcessExecutionContext>._)). WhenArgumentsMatch((arguments) => { BoostTestRunnerCommandLineArgs args = (BoostTestRunnerCommandLineArgs) arguments.First(); return (args.ListContent.HasValue) && (args.ListContent.Value == ListContentFormat.DOT) && (!string.IsNullOrEmpty(args.StandardErrorFile)); }). MustHaveHappened(); } // Ensure proper test discovery Assert.That(sink.Tests.Count, Is.EqualTo(8)); AssertLabelTrait(sink.Tests.FirstOrDefault((vstest) => (vstest.FullyQualifiedName == "test_2")), "l1"); AssertLabelTrait(sink.Tests.FirstOrDefault((vstest) => (vstest.FullyQualifiedName == "test_6")), "l1"); var test_8 = sink.Tests.FirstOrDefault((vstest) => (vstest.FullyQualifiedName == "test_8")); AssertLabelTrait(test_8, "l1"); AssertLabelTrait(test_8, "l2"); AssertLabelTrait(test_8, "l3 withaspace"); Assert.That(output, Is.Not.Null); // Ensure proper environment cleanup Assert.That(File.Exists(output), Is.False); }
public void FailingExitCode() { IBoostTestRunner runner = A.Fake <IBoostTestRunner>(); A.CallTo(() => runner.ListContentSupported).Returns(true); A.CallTo(() => runner.VersionSupported).Returns(false); A.CallTo(() => runner.Execute(A <BoostTestRunnerCommandLineArgs> ._, A <BoostTestRunnerSettings> ._, A <IProcessExecutionContext> ._)).Returns(-1073741515); FakeBoostTestRunnerFactory factory = new FakeBoostTestRunnerFactory(runner); ListContentDiscoverer discoverer = new ListContentDiscoverer(factory, DummyVSProvider.Default); DefaultTestContext context = new DefaultTestContext(); DefaultTestCaseDiscoverySink sink = new DefaultTestCaseDiscoverySink(); discoverer.DiscoverTests(new[] { "missing-dll.exe", }, context, sink); // Ensure proper test discovery Assert.That(sink.Tests.Count, Is.EqualTo(0)); }
public void VersionAnnotation() { IBoostTestRunner runner = A.Fake <IBoostTestRunner>(); A.CallTo(() => runner.Capabilities).Returns(new BoostTestRunnerCapabilities { ListContent = true, Version = true }); A.CallTo(() => runner.Execute(A <BoostTestRunnerCommandLineArgs> ._, A <BoostTestRunnerSettings> ._, A <IProcessExecutionContext> ._)).Invokes((call) => { BoostTestRunnerCommandLineArgs args = (BoostTestRunnerCommandLineArgs)call.Arguments.First(); // --list_content=DOT if ((args.ListContent.HasValue) && (args.ListContent.Value == ListContentFormat.DOT) && (!string.IsNullOrEmpty(args.StandardErrorFile))) { TestHelper.CopyEmbeddedResourceToDirectory("BoostTestAdapterNunit.Resources.ListContentDOT.sample.3.list.content.gv", args.StandardErrorFile); } // --version else if ((args.Version) && (!string.IsNullOrEmpty(args.StandardErrorFile))) { TestHelper.CopyEmbeddedResourceToDirectory("BoostTestAdapterNunit.Resources.Version.sample.version.stderr.log", args.StandardErrorFile); } }).Returns(0); FakeBoostTestRunnerFactory factory = new FakeBoostTestRunnerFactory(runner); ListContentDiscoverer discoverer = new ListContentDiscoverer(factory, DummyVSProvider.Default); DefaultTestContext context = new DefaultTestContext(); DefaultTestCaseDiscoverySink sink = new DefaultTestCaseDiscoverySink(); discoverer.DiscoverTests(new[] { "test.exe", }, context, sink); // Ensure proper test discovery Assert.That(sink.Tests.Count, Is.Not.EqualTo(0)); // Ensure that version property is available foreach (var test in sink.Tests) { var version = test.GetPropertyValue(VSTestModel.VersionProperty); Assert.That(version, Is.EqualTo("1.63.0")); } }