public void TestRun_Multi_Pass_Timeout(string versionpath)
        {
            var source = Paths.TestExecutable_Execution(TestContext, versionpath);

            if (string.IsNullOrEmpty(source))
            {
                Assert.Fail($"Missing test executable for {versionpath}.");
                return;
            }

            var settings = new Settings();

            settings.ExecutionMode   = ExecutionModes.CombineTestCases;
            settings.CombinedTimeout = 1500; // 1500 ms

            var executor = new Executor(settings, _pathSolution, _pathTestRun);

            var group = new TestCaseGroup();

            group.Source = source;
            group.Names.Add("Pass. Test01 fast");
            group.Names.Add("Pass. Test02 fast");
            group.Names.Add("Pass. Test03 slow");        // takes 1s
            group.Names.Add("Pass. Test04 slow tagged"); // takes 1s
            group.Names.Add("Pass. Test05 fast");
            group.Names.Add("Pass. Test06 fast");

            var testresults = executor.Run(group);

            Assert.IsTrue(testresults.IsPartialOutput);
            Assert.IsTrue(testresults.TimedOut);
            Assert.AreEqual(3, testresults.TestResults.Count);

            var testresult = testresults.FindTestResult("Pass. Test01 fast");

            Assert.IsNotNull(testresult);
            Assert.AreEqual(TestOutcomes.Passed, testresult.Outcome);
            Assert.AreEqual(0, testresult.OverallResults.Failures);
            Assert.AreEqual(0, testresult.OverallResults.Successes);
            Assert.AreEqual(0, testresult.OverallResults.TotalAssertions);

            testresult = testresults.FindTestResult("Pass. Test02 fast");
            Assert.IsNotNull(testresult);
            Assert.AreEqual(TestOutcomes.Passed, testresult.Outcome);
            Assert.AreEqual(0, testresult.OverallResults.Failures);
            Assert.AreEqual(0, testresult.OverallResults.Successes);
            Assert.AreEqual(0, testresult.OverallResults.TotalAssertions);

            testresult = testresults.FindTestResult("Pass. Test03 slow");
            Assert.IsNotNull(testresult);
            Assert.AreEqual(TestOutcomes.Passed, testresult.Outcome);
            Assert.AreEqual(0, testresult.OverallResults.Failures);
            Assert.AreEqual(0, testresult.OverallResults.Successes);
            Assert.AreEqual(0, testresult.OverallResults.TotalAssertions);

            Assert.IsNull(testresults.FindTestResult("Pass. Test04 slow tagged"));
            Assert.IsNull(testresults.FindTestResult("Pass. Test05 fast"));
            Assert.IsNull(testresults.FindTestResult("Pass. Test06 fast"));
        }
        public void TestRun_Multi_Environment_BadValue(string versionpath)
        {
            var source = Paths.TestExecutable_Environment(TestContext, versionpath);

            if (string.IsNullOrEmpty(source))
            {
                Assert.Fail($"Missing test executable for {versionpath}.");
                return;
            }

            var settings = new Settings();

            settings.ExecutionMode = ExecutionModes.CombineTestCases;
            settings.Environment   = new Dictionary <string, string>();
            settings.Environment.Add("MyCustomEnvSetting", "Goodbye");
            settings.Environment.Add("MyOtherCustomEnvSetting", "debug<1>");

            var executor = new Executor(settings, _pathSolution, _pathTestRun);

            var group = new TestCaseGroup();

            group.Source = source;
            group.Names.Add("getenv. Check MyCustomEnvSetting");
            group.Names.Add("getenv. Check MyOtherCustomEnvSetting");

            var testresults = executor.Run(group);

            Assert.IsFalse(testresults.IsPartialOutput);
            Assert.IsFalse(testresults.TimedOut);
            Assert.AreEqual(2, testresults.TestResults.Count);
            Assert.AreEqual(2, testresults.OverallResults.Failures);
            Assert.AreEqual(2, testresults.OverallResults.Successes);
            Assert.AreEqual(4, testresults.OverallResults.TotalAssertions);

            var testresult = testresults.FindTestResult("getenv. Check MyCustomEnvSetting");

            Assert.IsNotNull(testresult);
            Assert.AreEqual(TestOutcomes.Failed, testresult.Outcome);
            Assert.AreEqual(0, testresult.OverallResults.Failures);
            Assert.AreEqual(0, testresult.OverallResults.Successes);
            Assert.AreEqual(0, testresult.OverallResults.TotalAssertions);

            testresult = testresults.FindTestResult("getenv. Check MyOtherCustomEnvSetting");
            Assert.IsNotNull(testresult);
            Assert.AreEqual(TestOutcomes.Failed, testresult.Outcome);
            Assert.AreEqual(0, testresult.OverallResults.Failures);
            Assert.AreEqual(0, testresult.OverallResults.Successes);
            Assert.AreEqual(0, testresult.OverallResults.TotalAssertions);
        }
Exemple #3
0
        public async Task <TestCaseCreateOutput> Handle(TestCaseCreateInput request, CancellationToken cancellationToken)
        {
            var testCaseGroup = new TestCaseGroup("group1", 1, "162", DateTimeOffset.Now);
            //var testCase = new TestCase(request.Name, 1, "😂", "162", DateTimeOffset.Now, testCaseGroup);
            var testCaseValueObject = new TestCaseValueObject("feild1", true);
            var testCase            = new TestCase(request.Name, 1, "😂", "162", DateTimeOffset.Now, testCaseValueObject);

            testCase.SetTargetTestCaseGroup(testCaseGroup);

            await _testCaseRepository.AddAsync(testCase, cancellationToken);

            await _testCaseRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);

            await _mediator.Publish(new TestCaseCreateDomainEvent(testCase), cancellationToken);

            return(new TestCaseCreateOutput
            {
                Id = testCase.Id,
                Name = testCase.Name
            });
        }
        public void TestRun_Single_Fail(string versionpath)
        {
            var source = Paths.TestExecutable_Execution(TestContext, versionpath);

            if (string.IsNullOrEmpty(source))
            {
                Assert.Fail($"Missing test executable for {versionpath}.");
                return;
            }

            var settings = new Settings();

            settings.ExecutionMode = ExecutionModes.CombineTestCases;

            var executor = new Executor(settings, _pathSolution, _pathTestRun);

            var group = new TestCaseGroup();

            group.Source = source;
            group.Names.Add("Fail. Test01 fast");

            var testresults = executor.Run(group);

            Assert.IsFalse(testresults.IsPartialOutput);
            Assert.IsFalse(testresults.TimedOut);
            Assert.AreEqual(1, testresults.TestResults.Count);
            Assert.AreEqual(1, testresults.OverallResults.Failures);
            Assert.AreEqual(0, testresults.OverallResults.Successes);
            Assert.AreEqual(1, testresults.OverallResults.TotalAssertions);

            var testresult = testresults.FindTestResult("Fail. Test01 fast");

            Assert.IsNotNull(testresult);
            Assert.AreEqual(TestOutcomes.Failed, testresult.Outcome);
            Assert.AreEqual(0, testresult.OverallResults.Failures);
            Assert.AreEqual(0, testresult.OverallResults.Successes);
            Assert.AreEqual(0, testresult.OverallResults.TotalAssertions);

            Assert.IsNull(testresults.FindTestResult("Fail. Test02 fast"));
        }
        // ========================================================================
        // Fields

        #region === Fields



        #endregion

        // ========================================================================
        // Con- / Destructors

        #region === Con- / Destructors

        /// <summary>
        /// Initializes a new instance of <see cref="TestCaseAssembly"/>.
        /// </summary>
        /// <param name="parent">The parent of this test case or group.</param>
        /// <param name="name">The name of the test case.</param>
        public TestCaseAssembly(TestCaseGroup parent, string name)
            : base(parent, name)
        {
        }