什么是以下MSTest代码的xUnit等价物:
Assert.Inconclusive("Reason");
这给出了黄色测试结果,而不是通常的绿色或红色。我想断言由于某些条件而无法运行测试,并且在满足这些条件后应该重新运行测试。
一种方法是在Skip
或Fact
属性中使用Theory
参数。
[Fact(Skip = "It's not ready yet")]
public void ReplaceTokensUnfinished()
{
var original = "";
var expected = "";
var tokenReplacer = new TokenReplacer();
var result = tokenReplacer.ReplaceTokens(original, _tokens); // (_tokens is initialised in a constructor)
Assert.Equal(result, expected);
}
运行时会得到以下结果:
在库中实现某些东西之前,最好的办法就是使用Xunit.SkippableFact
[SkippableFact]
public void SomeTest()
{
var canRunTest = CheckSomething();
Skip.IfNot(canRunTest);
// Normal test code
}
这至少会使它在列表中显示为黄色忽略的测试用例。
我通常做这样的事,
throw new Exception("Inconclusive");
是的,它显示为失败的测试,但至少你可以在测试中在某些不确定的情况下提出这个。
我没有使用上面提到的skippablefact功能,但这听起来像是一个很好的解决方案。