public int CreateTestRun(int configurationId, string[] selectedTestCases) { var configuration = GetConfiguration(configurationId); using var instance = ScopedServiceFactory.GetInstance(); var pool = instance.ScopedServiceInstance; var repo = pool.Get <TestResult>(); var testResult = new TestResult { TestSuiteConfigurationId = configurationId, State = TestResultState.Created, }; repo.Insert(testResult); pool.Save().Wait(); int id = testResult.Id; var testRun = TestRun.Create(Options.TestEnginePath, testResult, configuration, StoragePool, Update); repo.Update(testResult); pool.Save().Wait(); testRun.Run(selectedTestCases); TestRunPool.AddOrUpdate(id, _ => testRun, (_, _) => testRun); return(id); }
private ITestRun GetTestRunInternal(int id, TestResult testResult) { if (!TestRunPool.ContainsKey(id)) { if (testResult == null) { using var instance = ScopedServiceFactory.GetInstance(); var pool = instance.ScopedServiceInstance; var repo = pool.Get <TestResult>(); testResult = repo.Get(q => q.Where(item => item.Id == id)).First(); } var configuration = GetConfiguration(testResult.TestSuiteConfigurationId); var testRun = TestRun.Open(Options.TestEnginePath, testResult, configuration, StoragePool, Update); TestRunPool.AddOrUpdate(id, _ => testRun, (_, _) => testRun); } return(TestRunPool[id]); }