抽象目标:我正在使用NUnit(目前为3.9.0)。完成测试的一些工作是在OneTimeTearDown-Method中完成的。当这项工作失败时,我需要一个指示,即一个或多个测试应该失败。
背景:我正在使用NUnit作为单元测试框架来实现PACT测试。在消费者上,在运行所有测试之后,我必须生成PACT文件并将其上传到PACT代理。如果这种情况失败,例如当协议经纪人失败时,我需要有一个指示;即一项或全部测试失败。
问题:使用NUnit可以吗?如果是这样:怎么样?或者是否有更好的方法来实现我的目标?
答案 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中的执行结果:
从teardown方法运行失败的另一个选择是抛出异常。
答案 1 :(得分:1)
是的,只有您可以使用ReSharper,输出清晰可见。但您也可以使用output
或Nunit 2.X,请参阅详细信息Nunit3 console doesn't show test output continuously