public override void TestsStarting(object sender, TestEventArgs <UnitTestMethod> args) { ConsoleMethod test = args.Test; TestSuiteDefinition suite = GetTestSuiteDefinition(test); SetTestSuiteExecutionSummary(suite); }
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); } }
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); } }
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); }
/// <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); }
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)); }
public GetSuiteDefinitionResponse Suite(TestSuiteDefinition suite) { return(GetSuiteDefinition(suite.Title)); }
private TestSuiteDefinition GetOrCreateSuiteDefinition(TestSuiteDefinition suite) { return(GetOrCreateSuiteDefinition(suite, out CreateStatus createStatus)); }