我有一个名为MyClass的测试类。MyClass有一个TestFixtureSetUp,用于加载一些初始数据。如果加载初始数据失败,我想将整个类标记为Inconclusive。就像当某人通过调用Assert.Inconclusive()标记测试方法为Inconclusive一样。
是否有任何解决方案?
是否有任何解决方案?
当数据加载失败时,您可以使用Setup
进行解决。
例如:
[TestFixture]
public class ClassWithDataLoad
{
private bool loadFailed;
[TestFixtureSetUp]
public void FixtureSetup()
{
// Assuming loading failure throws exception.
// If not if-else can be used.
try
{
// Try load data
}
catch (Exception)
{
loadFailed = true;
}
}
[SetUp]
public void Setup()
{
if (loadFailed)
{
Assert.Inconclusive();
}
}
[Test] public void Test1() { }
[Test] public void Test2() { }
}
Nunit不支持在TestFixtureSetUp
中使用Assert.Inconclusive()
。如果在此处调用Assert.Inconclusive()
,则该测试夹具中的所有测试都将显示为失败。
在你的TestFixtureSetUp
中,将一个静态值存储在类中,以指示数据是否已加载、成功加载或尝试但未成功加载。
在每个测试的SetUp
中检查该值。
如果它表示加载不成功,则立即调用Assert.Inconclusive()
退出。