NUnit:OneTimeTearDown失败时的失败测试

时间:2018-02-03 15:12:56

标签: c# nunit nunit-3.0 pact

抽象目标:我正在使用NUnit(目前为3.9.0)。完成测试的一些工作是在OneTimeTearDown-Method中完成的。当这项工作失败时,我需要一个指示,即一个或多个测试应该失败。

背景:我正在使用NUnit作为单元测试框架来实现PACT测试。在消费者上,在运行所有测试之后,我必须生成PACT文件并将其上传到PACT代理。如果这种情况失败,例如当协议经纪人失败时,我需要有一个指示;即一项或全部测试失败。

问题:使用NUnit可以吗?如果是这样:怎么样?或者是否有更好的方法来实现我的目标?

2 个答案:

答案 0 :(得分:2)

您可以从测试中调用OneTimeTearDown方法调用相同的断言方法。以下是从拆卸方法测试运行失败的示例:

[TestFixture]
public class SomeClassTests
{
    [OneTimeTearDown]
    public void Cleanup()
    {
        Assert.Fail("Failed to upload file to the PACT broker");
    }

    [Test]
    public void TestMethod()
    {
        Assert.Pass();
    }
}

这是ReSharper UT runner中的执行结果:

enter image description here

从teardown方法运行失败的另一个选择是抛出异常。

答案 1 :(得分:1)

是的,只有您可以使用ReSharper,输出清晰可见。但您也可以使用output或Nunit 2.X,请参阅详细信息Nunit3 console doesn't show test output continuously