MSTest 的 xUnit 等价物 Assert.Inconclusive
xUnit Equivalent of MSTest's Assert.Inconclusive
以下 MSTest 代码的 xUnit 等效项是什么:
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);
}
当 运行:
时给出这个结果
在库中实现某些东西之前,最好的办法是使用 Xunit.SkippableFact:
[SkippableFact]
public void SomeTest()
{
var canRunTest = CheckSomething();
Skip.IfNot(canRunTest);
// Normal test code
}
这至少会使其在列表中显示为黄色的忽略测试用例。
归功于
我通常会这样做:
throw new Exception("Inconclusive");
是的,它显示为一个失败的测试,但至少你可以在某些不确定的情况下在测试中提出这个问题。
我没有使用其他答案中提到的 SkippableFact 功能,但这对我来说听起来是个不错的解决方案。
以下 MSTest 代码的 xUnit 等效项是什么:
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);
}
当 运行:
时给出这个结果在库中实现某些东西之前,最好的办法是使用 Xunit.SkippableFact:
[SkippableFact]
public void SomeTest()
{
var canRunTest = CheckSomething();
Skip.IfNot(canRunTest);
// Normal test code
}
这至少会使其在列表中显示为黄色的忽略测试用例。
归功于
我通常会这样做:
throw new Exception("Inconclusive");
是的,它显示为一个失败的测试,但至少你可以在某些不确定的情况下在测试中提出这个问题。
我没有使用其他答案中提到的 SkippableFact 功能,但这对我来说听起来是个不错的解决方案。