如果某些必要的设置也作为测试失败,我试图弄清楚如何让测试失败为“不确定”。
这是我正在尝试做的一个过于简化的例子,但希望它说明了这一点:
[Test] public void TestSetter() {
Assert.That(() => myInstance.Property = "test", Throws.Nothing);
}
[Test] public void TestGetter() {
try { TestSetter(); } catch (AssertionException) {
Assert.Inconclusive("Unable to test, prereq failed");
}
Assert.That(myInstance.Property, Is.EqualTo("test"));
}
这似乎不起作用,如果我强制TestSetter
测试失败,两者仍显示'失败'结果,而不是TestGetter
导致'不确定'。我逐步完成了代码,它肯定会进入Assert.Inconclusive
调用,但似乎早期AssertionException
仍然优先。
有没有办法让这个正确地报告'不确定'?
使用C#7,使用NUnit 3.6.0
答案 0 :(得分:1)
尝试升级到NUnit Framework v3.6.1,看看它是否按预期运行。
v3.6.0中有关于捕获AssertionExceptions的更改,后来又被还原了。
有关详细信息,请参阅https://github.com/nunit/nunit/issues/2043。总结一下 - 你应该知道,捕获AssertionException并不是一个严格支持的编写测试的接口,并且可能值得重构,以不同的方式测试安装成功。