public override void TestsStarting(object sender, TestEventArgs <UnitTestMethod> args)
        {
            ConsoleMethod       test  = args.Test;
            TestSuiteDefinition suite = GetTestSuiteDefinition(test);

            SetTestSuiteExecutionSummary(suite);
        }
Пример #2
0
 private TestSuiteDefinition GetOrCreateSuiteDefinition(TestSuiteDefinition suite, out CreateStatus createStatus)
 {
     lock (_suiteLock)
     {
         TestSuiteDefinition result = null;
         createStatus = CreateStatus.Existing;
         if (!string.IsNullOrEmpty(suite.Uuid))
         {
             result = (TestSuiteDefinition)Repository.Retrieve(typeof(TestSuiteDefinition), suite.Uuid);
         }
         if (result == null && suite.Id > 0)
         {
             result = Repository.Retrieve <TestSuiteDefinition>(suite.Id);
         }
         if (result == null)
         {
             result = Repository.Query <TestSuiteDefinition>(Query.Where("Title") == suite.Title).FirstOrDefault();
             if (result != null)
             {
                 result = (TestSuiteDefinition)Repository.Retrieve(typeof(TestSuiteDefinition), result.Uuid);
             }
         }
         if (result == null)
         {
             Meta.SetAuditFields(suite);
             result       = Repository.Create(suite);
             createStatus = CreateStatus.Created;
         }
         return(result);
     }
 }
Пример #3
0
        private TestDefinition GetOrCreateTestDefinition(string suiteTitle, string testTitle, out CreateStatus createStatus)
        {
            lock (_testLock)
            {
                createStatus = CreateStatus.Existing;
                TestSuiteDefinition suite = Repository.Query <TestSuiteDefinition>(Query.Where("Title") == suiteTitle).FirstOrDefault();
                if (suite == null)
                {
                    suite = GetOrCreateSuiteDefinition(new TestSuiteDefinition {
                        Title = suiteTitle
                    });
                }

                TestDefinition result = Repository.Query <TestDefinition>(Query.Where("Title") == testTitle && Query.Where("SuiteDefinitionId") == suite.Id).FirstOrDefault();
                if (result == null)
                {
                    result = new TestDefinition()
                    {
                        Title             = testTitle,
                        SuiteDefinitionId = suite.Id
                    };
                    Meta.SetAuditFields(result);
                    result       = Repository.Create(result);
                    createStatus = CreateStatus.Created;
                }
                return(result);
            }
        }
Пример #4
0
 private TestDefinition GetOrCreateTestDefinition(string suiteTitle, TestDefinition testDefinition, out CreateStatus createStatus)
 {
     lock (_testLock)
     {
         createStatus = CreateStatus.Existing;
         TestSuiteDefinition suite = TestingRepository.Query <TestSuiteDefinition>(Query.Where(nameof(TestSuiteDefinition.Title)) == suiteTitle).FirstOrDefault();
         if (suite == null)
         {
             suite = GetOrCreateSuiteDefinition(new TestSuiteDefinition {
                 Title = suiteTitle
             });
         }
         string         testTitle = testDefinition.Title;
         TestDefinition result    = TestingRepository.Query <TestDefinition>(
             Query.Where(nameof(TestDefinition.Title)) == testTitle &&
             Query.Where(nameof(TestDefinition.TestSuiteDefinitionId)) == suite.Id).FirstOrDefault();
         if (result == null)
         {
             result = testDefinition;
             result.TestSuiteDefinitionId = suite.Id;
             Meta.SetAuditFields(result);
             result       = TestingRepository.Create(result);
             createStatus = CreateStatus.Created;
         }
         return(result);
     }
 }
        public override void TestStarting(object sender, TestEventArgs <UnitTestMethod> args)
        {
            TestSuiteDefinition suite          = TestSuiteDefinition.FromTestEventArgs(args);
            UnitTestMethod      test           = args.Test.CopyAs <UnitTestMethod>();
            TestDefinition      testDefinition = GetTestDefinition(suite.Title, test);

            SetTestExecution(args);
        }
        public override void TestsFinished(object sender, TestEventArgs <UnitTestMethod> args)
        {
            UnitTestMethod            test    = args.Test.CopyAs <UnitTestMethod>();
            TestSuiteDefinition       suite   = GetTestSuiteDefinition(args);
            TestSuiteExecutionSummary summary = GetTestSuiteExecutionSummary(suite);

            summary.FinishedTime = DateTime.UtcNow;
            TestReportService.SaveTestSuiteExecutionSummary(summary);
        }
Пример #7
0
 /// <summary>
 /// Get an exisintg SuiteDefinition with the specified suiteTitle or
 /// create it if none exists
 /// </summary>
 /// <param name="suiteTitle"></param>
 /// <returns></returns>
 public GetSuiteDefinitionResponse GetSuiteDefinition(string suiteTitle)
 {
     try
     {
         TestSuiteDefinition result = GetOrCreateSuiteDefinition(new TestSuiteDefinition {
             Title = suiteTitle
         }, out CreateStatus createStatus);
         return(new GetSuiteDefinitionResponse {
             Success = true, Data = result, CreateStatus = createStatus
         });
     }
     catch (Exception ex)
     {
         return(new GetSuiteDefinitionResponse {
             Success = false, Message = ex.Message
         });
     }
 }
        /// <summary>
        /// Get a TestSuiteDefinition for the specified test creating it if necessary
        /// and populating the internal cache
        /// </summary>
        /// <param name="test"></param>
        /// <returns></returns>
        protected TestSuiteDefinition GetTestSuiteDefinition(ConsoleMethod test)
        {
            TestSuiteDefinition suite = TestSuiteDefinition.FromMethod(test);

            if (!_testSuiteDefinitionLookupByTitle.TryGetValue(suite.Title, out suite))
            {
                GetSuiteDefinitionResponse response = TestReportService.GetSuiteDefinition(suite.Title);
                if (response.Success)
                {
                    _testSuiteDefinitionLookupByTitle.TryAdd(suite.Title, response.SuiteDefinition);
                }
                else
                {
                    Logger.Warning("Failed to define test suite: {0}", response.Message);
                }
            }

            return(suite);
        }
 protected TestExecution SetTestExecution(UnitTestMethod test)
 {
     if (!_testExecutionLookupByMethodInfo.TryGetValue(test.Method, out TestExecution execution))
     {
         TestSuiteDefinition       suiteDefinition  = GetTestSuiteDefinition(test);
         TestDefinition            testDefinition   = GetTestDefinition(suiteDefinition.Title, test);
         TestSuiteExecutionSummary executionSummary = GetTestSuiteExecutionSummary(suiteDefinition);
         SaveTestExecutionResponse saveResponse     = TestReportService.StartTest(executionSummary.Id, testDefinition.Id, Tag);
         if (saveResponse.Success)
         {
             execution = saveResponse.TestExecution;
             _testExecutionLookupByMethodInfo.TryAdd(test.Method, execution);
         }
         else
         {
             Logger.Warning("Failed to get TestExecution: {0}", saveResponse.Message);
         }
     }
     return(execution);
 }
 /// <summary>
 /// Set a TestSuiteExecutionSummary for the specified test creating it if necessary
 /// and populating the internal cache
 /// </summary>
 /// <param name="suite"></param>
 /// <returns></returns>
 protected TestSuiteExecutionSummary SetTestSuiteExecutionSummary(TestSuiteDefinition suite)
 {
     if (!_testSuiteExecutionLookupByTitle.TryGetValue(suite.Title, out TestSuiteExecutionSummary summary))
     {
         TestSuiteExecutionSummary executionSummary = new TestSuiteExecutionSummary {
             SuiteDefinitionId = suite.Id, StartedTime = DateTime.UtcNow
         };
         SaveTestSuiteExecutionSummaryResponse response = TestReportService.SaveTestSuiteExecutionSummary(executionSummary);
         if (response.Success)
         {
             summary = response.TestSuiteExecutionSummary;
             _testSuiteExecutionLookupByTitle.TryAdd(suite.Title, summary);
         }
         else
         {
             Logger.Warning("Failed to create TestSuiteExecutionSummary: {0}", response.Message);
         }
     }
     return(summary);
 }
Пример #11
0
        private TestDefinition GetTestDefinition(string suiteTitle, string testTitle)
        {
            TestSuiteDefinition suite = TestingRepository.Query <TestSuiteDefinition>(Query.Where(nameof(TestSuiteDefinition.Title)) == suiteTitle).FirstOrDefault();

            if (suite == null)
            {
                suite = GetOrCreateSuiteDefinition(new TestSuiteDefinition {
                    Title = suiteTitle
                });
            }
            TestDefinition result = TestingRepository.Query <TestDefinition>(Query.Where(nameof(TestDefinition.Title)) == testTitle &&
                                                                             Query.Where(nameof(TestDefinition.TestSuiteDefinitionId)) == suite.Id).FirstOrDefault();

            if (result == null)
            {
                result = GetOrCreateTestDefinition(suiteTitle, new TestDefinition {
                    Title = testTitle
                });
            }
            return(result);
        }
        /// <summary>
        /// Get a TestSuiteDefinition for the specified test creating it if necessary
        /// and populating the internal cache
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        protected TestSuiteDefinition GetTestSuiteDefinition <TTestMethod>(TestEventArgs <TTestMethod> args) where TTestMethod : TestMethod
        {
            ConsoleMethod       test  = args.Test;
            TestSuiteDefinition suite = TestSuiteDefinition.FromTestEventArgs(args);

            if (!_testSuiteDefinitionLookupByTitle.TryGetValue(suite.Title, out TestSuiteDefinition fromCache))
            {
                GetSuiteDefinitionResponse response = TestReportService.GetSuiteDefinition(suite.Title);
                if (response.Success)
                {
                    _testSuiteDefinitionLookupByTitle.TryAdd(suite.Title, response.SuiteDefinition);
                }
                else
                {
                    Logger.Warning("Failed to define test suite: {0}", response.Message);
                }
            }
            if (fromCache != null)
            {
                suite = fromCache;
            }
            return(suite);
        }
        public override void TestsStarting(object sender, TestEventArgs <UnitTestMethod> args)
        {
            TestSuiteDefinition suite = GetTestSuiteDefinition <UnitTestMethod>(args);

            SetTestSuiteExecutionSummary(suite);
        }
 protected TestSuiteExecutionSummary GetTestSuiteExecutionSummary(TestSuiteDefinition suite)
 {
     return(SetTestSuiteExecutionSummary(suite));
 }
Пример #15
0
 public GetSuiteDefinitionResponse Suite(TestSuiteDefinition suite)
 {
     return(GetSuiteDefinition(suite.Title));
 }
Пример #16
0
 private TestSuiteDefinition GetOrCreateSuiteDefinition(TestSuiteDefinition suite)
 {
     return(GetOrCreateSuiteDefinition(suite, out CreateStatus createStatus));
 }