0

使用 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);
    }
}
4

1 回答 1

0

我通过写一个 Gallio 来解决这个问题TestRunnerExtension。通过处理该TestStepFinished事件,我可以获得使用 StaticTestFactory 创建的所有测试的正确测试结果。

于 2013-09-23T01:58:04.397 回答