什麼的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。 –