public void CaseFailed(FailResult result) { if (isParameterized) { var newTask = new TestCaseTask(result.Case.Name, nodeRunner.CurrentTask.AssemblyLocation); server.CreateDynamicElement(newTask); nodeRunner.AddTask(newTask); } var task = nodeRunner.CurrentTask; if (!string.IsNullOrWhiteSpace(result.Output)) { server.TaskOutput(task, result.Output, TaskOutputType.STDOUT); } if (result.Exceptions != null && result.Exceptions.Any()) { server.TaskException(task, result.Exceptions.Select(ex => new TaskException(ex)).ToArray()); task.CloseTask(TaskResult.Exception, result.Case.Name); } else { task.CloseTask(TaskResult.Error, result.Case.Name); } if (isParameterized) { nodeRunner.FinishCurrentTask(task); } }
public void CaseFailed(FailResult result) { if (isParameterized) { var newTask = new TestCaseTask(result.Case.Name, nodeRunner.CurrentTask.AssemblyLocation); server.CreateDynamicElement(newTask); nodeRunner.AddTask(newTask); } var task = nodeRunner.CurrentTask; if (!string.IsNullOrWhiteSpace(result.Output)) server.TaskOutput(task, result.Output, TaskOutputType.STDOUT); if (result.Exceptions != null && result.Exceptions.Any()) { server.TaskException(task, result.Exceptions.Select(ex => new TaskException(ex)).ToArray()); task.CloseTask(TaskResult.Exception, result.Case.Name); } else { task.CloseTask(TaskResult.Error, result.Case.Name); } if (isParameterized) nodeRunner.FinishCurrentTask(task); }
private IUnitTestElement GetDynamicCaseElement( Dictionary <RemoteTask, IUnitTestElement> tasks, TestCaseTask caseTask) { var methodElement = tasks.Where(kvp => kvp.Key is TestMethodTask && IsParentMethodTask(kvp.Key as TestMethodTask, caseTask)) .Select(kvp => kvp.Value).FirstOrDefault() as TestMethodElement; if (methodElement == null) { return(null); } using (ReadLockCookie.Create()) { var project = methodElement.GetProject(); if (project == null) { return(null); } var element = UnitTestElementFactory.GetTestCase( project, methodElement, caseTask.MethodName + caseTask.Parameters); // Make sure we return an element, even if the system already knows about it. If it's // part of the test run, it will already have been added in GetTaskSequence, and this // method (GetDynamicElement) doesn't get called. But if you try and run just a single // theory, Fixie will run ALL theories for that method, and will need the elements // for those theories not included in the task sequence. This is necessary because if // one of those theories throws an exception, UnitTestLaunch.TaskException doesn't // have an element to report against, and displays a message box if (element != null) { // If the element is invalid, it's been removed from its parent, so add it back, // and reset the state if (element.State == UnitTestElementState.Invalid) { element.State = UnitTestElementState.Dynamic; element.Parent = methodElement; } return(element); } return(UnitTestElementFactory.CreateTestCase( this, project, methodElement, caseTask.MethodName + caseTask.Parameters)); } }
public void CasePassed(PassResult result) { if (isParameterized) { var newTask = new TestCaseTask(result.Case.Name, nodeRunner.CurrentTask.AssemblyLocation); server.CreateDynamicElement(newTask); nodeRunner.AddTask(newTask); } var task = nodeRunner.CurrentTask; if (!string.IsNullOrWhiteSpace(result.Output)) server.TaskOutput(task, result.Output, TaskOutputType.STDOUT); task.CloseTask(TaskResult.Success, result.Case.Name); if (isParameterized) nodeRunner.FinishCurrentTask(task); }
public void CaseSkipped(SkipResult result) { if (isParameterized) { var newTask = new TestCaseTask(result.Case.Name, nodeRunner.CurrentTask.AssemblyLocation); server.CreateDynamicElement(newTask); nodeRunner.AddTask(newTask); } var task = nodeRunner.CurrentTask; task.CloseTask(TaskResult.Skipped, result.Case.Name); if (isParameterized) { nodeRunner.FinishCurrentTask(task); } }
public void CasePassed(PassResult result) { if (isParameterized) { var newTask = new TestCaseTask(result.Case.Name, nodeRunner.CurrentTask.AssemblyLocation); server.CreateDynamicElement(newTask); nodeRunner.AddTask(newTask); } var task = nodeRunner.CurrentTask; if (!string.IsNullOrWhiteSpace(result.Output)) { server.TaskOutput(task, result.Output, TaskOutputType.STDOUT); } task.CloseTask(TaskResult.Success, result.Case.Name); if (isParameterized) { nodeRunner.FinishCurrentTask(task); } }
public void CaseSkipped(SkipResult result) { if (isParameterized) { var newTask = new TestCaseTask(result.Case.Name, nodeRunner.CurrentTask.AssemblyLocation); server.CreateDynamicElement(newTask); nodeRunner.AddTask(newTask); } var task = nodeRunner.CurrentTask; task.CloseTask(TaskResult.Skipped, result.Case.Name); if (isParameterized) nodeRunner.FinishCurrentTask(task); }
private void RunCaseTask(TestCaseTask task) { }
private bool IsParentMethodTask(TestMethodTask methodTask, TestCaseTask caseTask) { return methodTask.AssemblyLocation == caseTask.AssemblyLocation && methodTask.TypeName == caseTask.TypeName && methodTask.MethodName == caseTask.MethodName; }
private IUnitTestElement GetDynamicCaseElement( Dictionary<RemoteTask, IUnitTestElement> tasks, TestCaseTask caseTask) { var methodElement = tasks.Where(kvp => kvp.Key is TestMethodTask && IsParentMethodTask(kvp.Key as TestMethodTask, caseTask)) .Select(kvp => kvp.Value).FirstOrDefault() as TestMethodElement; if (methodElement == null) return null; using (ReadLockCookie.Create()) { var project = methodElement.GetProject(); if (project == null) return null; var element = UnitTestElementFactory.GetTestCase( project, methodElement, caseTask.MethodName + caseTask.Parameters); // Make sure we return an element, even if the system already knows about it. If it's // part of the test run, it will already have been added in GetTaskSequence, and this // method (GetDynamicElement) doesn't get called. But if you try and run just a single // theory, Fixie will run ALL theories for that method, and will need the elements // for those theories not included in the task sequence. This is necessary because if // one of those theories throws an exception, UnitTestLaunch.TaskException doesn't // have an element to report against, and displays a message box if (element != null) { // If the element is invalid, it's been removed from its parent, so add it back, // and reset the state if (element.State == UnitTestElementState.Invalid) { element.State = UnitTestElementState.Dynamic; element.Parent = methodElement; } return element; } return UnitTestElementFactory.CreateTestCase( this, project, methodElement, caseTask.MethodName + caseTask.Parameters); } }
private bool IsParentMethodTask(TestMethodTask methodTask, TestCaseTask caseTask) { return(methodTask.AssemblyLocation == caseTask.AssemblyLocation && methodTask.TypeName == caseTask.TypeName && methodTask.MethodName == caseTask.MethodName); }