使用 MbUnit,我使用几个 StaticTestFactory 方法创建测试,每个方法都有相应的测试设置和拆卸方法。要求是将测试结果记录到外部系统,尤其是失败的系统。
但是,我无法使用 TestContext.CurrentContext.Outcome.Status 获得正确的测试结果状态。使用下面的代码,您将看到测试失败,但即使 Gallio Icarus 和 Echo 都显示测试失败,Outcome.status 始终从 FactoryAssignedTearDownMethod 返回为“通过”。
寻找任何解决方法或修复方法以在这种情况下获得正确的结果。
public class FactoryTest
{
[StaticTestFactory]
public static IEnumerable<Test> CreateStaticTests()
{
var testcase = new TestCase("simpletest" , () =>
{
Assert.Fail("staticfactory created test failed.");
});
testcase.TearDown = FactoryAssignedTearDownMethod;
yield return testcase;
}
public static void FactoryAssignedTearDownMethod()
{
//outcome value is always 'Passed', even when test fails
TestLog.WriteLine("Test Outcome Status from factory assigned method: " + TestContext.CurrentContext.Outcome.Status);
}
}