什么的xUnit相当于下面的MSTest代码:MSTest的的Assert.Inconclusive的xUnit的Equivelant
Assert.Inconclusive("Reason");
这给出了一个黄色的测试结果而不是通常的绿色或红色。我想断言由于某些条件测试不能运行,并且测试应该在这些条件满足后重新运行。
什么的xUnit相当于下面的MSTest代码:MSTest的的Assert.Inconclusive的xUnit的Equivelant
Assert.Inconclusive("Reason");
这给出了一个黄色的测试结果而不是通常的绿色或红色。我想断言由于某些条件测试不能运行,并且测试应该在这些条件满足后重新运行。
一种方法是使用Fact
或Theory
属性中的Skip
参数。
[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);
}
运行时,这给出了这样的结果:
我不喜欢这样。这是否意味着任何异常或失败都意味着测试跳过了?我希望能力只能在某些情况下没有结果,否则失败...... – Kody
这是正确的,它跳过了测试。听起来它不能完全满足你的需求。 xUnit虽然是开源的,但是你可以添加你的功能;) – testpattern
此外,添加跳转到理论跳过所有测试(对于所有的“理论”),而不仅仅是单次运行。 – Kody
一个可以做,直到事情最好的办法是在图书馆实行的是使用Xunit.SkippableFact
[SkippableFact]
public void SomeTest()
{
var canRunTest = CheckSomething();
Skip.IfNot(canRunTest);
// Normal test code
}
这至少会使其在列表中显示为黄色忽略的测试用例。
在1.x版本中没有,您使用的是哪个版本的xunit? https://xunit.github.io/docs/comparisons.html – jessehouwing
最新版本2.1.0。 –