Ejemplo n.º 1
0
        public async Task GetTestRunner_should_be_able_to_create_a_testrunner()
        {
            var testRunner = await testRunnerManager.GetTestRunnerAsync(nameof(TestRunnerManagerTest));

            testRunner.Should().NotBeNull();
            testRunner.Should().BeOfType <TestRunner>();
        }
        public async Task Should_resolve_a_test_runner_specific_test_tracer()
        {
            //This test can't run in NCrunch as when NCrunch runs the tests it will disable the ability to get different test runners for each thread
            //as it manages the parallelisation
            //see https://github.com/techtalk/SpecFlow/issues/638
            if (!TestEnvironmentHelper.IsBeingRunByNCrunch())
            {
                var testRunner1 = await TestRunnerManager.GetTestRunnerAsync(nameof(TestRunnerManagerRunnerCreationTests) + "_0", anAssembly, new RuntimeTestsContainerBuilder());

                await testRunner1.OnFeatureStartAsync(new FeatureInfo(new CultureInfo("en-US"), "sds", "sss"));

                testRunner1.OnScenarioInitialize(new ScenarioInfo("foo", "foo_desc"));
                await testRunner1.OnScenarioStartAsync();

                var tracer1 = testRunner1.ScenarioContext.ScenarioContainer.Resolve <ITestTracer>();

                var testRunner2 = await TestRunnerManager.GetTestRunnerAsync(nameof(TestRunnerManagerRunnerCreationTests) + "_1", anAssembly, new RuntimeTestsContainerBuilder());

                await testRunner2.OnFeatureStartAsync(new FeatureInfo(new CultureInfo("en-US"), "sds", "sss"));

                testRunner2.OnScenarioInitialize(new ScenarioInfo("foo", "foo_desc"));
                await testRunner1.OnScenarioStartAsync();

                var tracer2 = testRunner2.ScenarioContext.ScenarioContainer.Resolve <ITestTracer>();

                tracer1.Should().NotBeSameAs(tracer2);
            }
        }
        public async Task GetTestRunner_without_arguments_should_return_TestRunner_instance()
        {
            var testRunner = await TestRunnerManager.GetTestRunnerAsync(nameof(TestRunnerManagerStaticApiTest), containerBuilder : new RuntimeTestsContainerBuilder());

            testRunner.Should().NotBeNull();
            testRunner.Should().BeOfType <TestRunner>();
        }
        public async Task GetTestRunner_should_return_different_instances_for_different_assemblies()
        {
            var testRunner1 = await TestRunnerManager.GetTestRunnerAsync(nameof(TestRunnerManagerStaticApiTest), thisAssembly, containerBuilder : new RuntimeTestsContainerBuilder());

            var testRunner2 = await TestRunnerManager.GetTestRunnerAsync(nameof(TestRunnerManagerStaticApiTest), anotherAssembly, containerBuilder : new RuntimeTestsContainerBuilder());

            testRunner1.Should().NotBe(testRunner2);
        }
        public async Task OnTestRunEnd_without_arguments_should_fire_AfterTestRun_events_for_calling_assembly()
        {
            // make sure a test runner is initialized
            await TestRunnerManager.GetTestRunnerAsync(nameof(TestRunnerManagerStaticApiTest), thisAssembly, containerBuilder : new RuntimeTestsContainerBuilder());

            AfterTestRunTestBinding.AfterTestRunCallCount = 0; //reset
            await TestRunnerManager.OnTestRunEndAsync(thisAssembly);

            AfterTestRunTestBinding.AfterTestRunCallCount.Should().Be(1);
        }