private TestRunState Run( ITestListener testListener, Runner runner, TestFilter filter)
{
var state = TestRunState.NoTests;
runner.RunAll(result =>{
testListener.TestFinished( new TestResult()
{
Name = String.Format("{0}.{1}",result.Test.Fixture.Name, result.Test.Name),
FixtureType = ((Fixture)result.Test.Fixture).Type,
StackTrace = result.Output,
Method = ((Test)result.Test).Method,
State = StateForResult(result.Kind),
TimeSpan = result.EndTime - result.StartTime,
});
if(state == TestRunState.NoTests){
switch (result.Kind)
{
case ResultKind.Fail:
state = TestRunState.Failure;
break;
case ResultKind.Error:
state = TestRunState.Error;
break;
default:
state = TestRunState.Success;
break;
}
} else if(state == TestRunState.Success || state == TestRunState.Failure){
switch (result.Kind)
{
case ResultKind.Fail:
state = TestRunState.Failure;
break;
case ResultKind.Error:
state = TestRunState.Error;
break;
}
}
}, filter);
return state;
}