public Guid StartNewTestRun(string testSuiteName) { var cancellationTokenSource = new CancellationTokenSource(); CancellationToken cancellationToken = cancellationTokenSource.Token; ITestRunExecutor executor = _testRunExecutorFactory.GetNewTestRunExecutor(testSuiteName); Guid testRunId = Guid.NewGuid(); _testRunExecutions[testRunId] = new TestRunExecutionDetails { CancellationTokenSource = cancellationTokenSource, Executor = executor }; Task.Factory.StartNew( () => { cancellationToken.Register(() => executor.CancelTestRun()); executor.BeginTestRunExecution(); }, cancellationToken); return(testRunId); }
public void CancelTestRun(Guid testRunId) { if (!_testRunExecutions.ContainsKey(testRunId)) { throw new TestRunNotFoundException($"Test run with id {testRunId} was not found."); } TestRunExecutionDetails runDetails = _testRunExecutions[testRunId]; runDetails.CancellationTokenSource.Cancel(); }
public TestRunStatus GetTestRunStatus(Guid testRunId) { if (!_testRunExecutions.ContainsKey(testRunId)) { throw new TestRunNotFoundException($"Test run with id {testRunId} was not found."); } TestRunExecutionDetails runDetails = _testRunExecutions[testRunId]; ITestRunExecutor executor = runDetails.Executor; TestRunStatus status = new TestRunStatus( MapRunStatus(executor.Status), executor.ElapsedTime); return(status); }
public TestRunResults GetTestRunResults(Guid testRunId) { if (!_testRunExecutions.ContainsKey(testRunId)) { throw new TestRunNotFoundException($"Test run with id {testRunId} was not found."); } TestRunExecutionDetails runDetails = _testRunExecutions[testRunId]; ITestRunExecutor executor = runDetails.Executor; TestRunResults results = new TestRunResults { TestOutput = executor.StandardOutput, ErrorOutput = executor.ErrorOutput, RunStatus = MapRunStatus(executor.Status), TotalRuntime = executor.ElapsedTime, TestRunId = testRunId, TestSuiteName = executor.TestSuiteName }; return(results); }