我们使用 NUnit 进行自动化测试,并且我们必须满足一些标准才能运行测试。特别是,我们将 Xamarin.UITest 用于移动 UITesting,我们需要检查我们当前是否正在测试我们想要测试的平台。不幸的是,我们无法使用类别来做到这一点。
我们现在这样做的方式是列出我们想要测试的平台。然后在该[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);
}