我們使用NUnit進行自動化測試,並且我們有一些必須滿足的條件才能使測試運行。特別是,我們正在使用Xamarin.UITest進行移動UITesting,我們需要檢查我們目前是否正在測試我們想測試的平臺。不幸的是,我們沒有辦法使用類別來完成它。NUnit取消SetUp中的測試
我們現在要做的方式是獲得我們要測試的平臺列表。在[SetUp]
方法中,我們檢查當前平臺是否包含在該列表中,如果沒有,我們中止測試。目前,我們通過讓Assert.Fail()
失敗來中止測試。然而,我們寧願讓測試無聲地離開,沒有失敗和沒有成功的信息,就好像它從未運行一樣。這甚至是可能的,如果是這樣的話,該怎麼辦?
下面是當前的代碼:
private IList<Platform> _desiredPlatforms;
public IList<Platform> DesiredPlatforms
{
get
{
if (_desiredPlatforms == null)
{
// read from environment variable
}
return _desiredPlatforms;
}
}
[SetUp]
public void BeforeEachTest()
{
// Check if the current platform is desired
if (!DesiredPlatforms.Contains(_platform))
{
Assert.Fail("Aborting the current test as the current platform " + _platform + " is not listed in the DesiredPlatforms-list");
}
_app = AppInitializer.Instance.StartApp(_platform, _appFile);
}
嘿,感謝您的想法:)我們不能使用類別來達到這個目的,因爲我們已經使用它們來對它們進行邏輯分組,但除此之外,我會毫不猶豫地嘗試你說的其他事情。 – vatbub
對不起 - 它清楚地表明,在你的問題 - 我有一個金魚的記憶! – Chris
沒問題:) Inconclusive似乎爲我們做了這項工作。 – vatbub