如何将整个类标记为“不确定”?

3
我有一个名为MyClass的测试类。MyClass有一个TestFixtureSetUp,用于加载一些初始数据。如果加载初始数据失败,我想将整个类标记为Inconclusive。就像当某人通过调用Assert.Inconclusive()标记测试方法为Inconclusive一样。
是否有任何解决方案?
2个回答

6

当数据加载失败时,您可以使用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(),则该测试夹具中的所有测试都将显示为失败。


3
请尝试以下方法:
  • 在你的TestFixtureSetUp中,将一个静态值存储在类中,以指示数据是否已加载、成功加载或尝试但未成功加载。

  • 在每个测试的SetUp中检查该值。

  • 如果它表示加载不成功,则立即调用Assert.Inconclusive()退出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接