选择性忽略NUnit测试

本文关键字:测试 NUnit 选择性 | 更新日期: 2023-09-27 18:28:46

我想忽略基于TestFixtureSetUp期间从配置文件中提取的数据的某些测试。有没有一种方法可以忽略基于参数运行测试?

[TestFixture]
public class MessagesTests
{
    private bool isPaidAccount;
    [TestFixtureSetUp]
    public void Init () {
        isPaidAccount = ConfigurationManager.AppSettings["IsPaidAccount"] == "True";
    }
    [Test]
    //this test should run only if `isPaidAccount` is true
    public void Message_Without_Template_Is_Sent()
    {
         //this tests an actual web api call.
    }
}

如果我们测试的帐户是付费帐户,测试应该运行良好,如果不是,方法将抛出异常。

是否存在属性[Ignore(ReallyIgnore = isPaidAccount )]的扩展?或者我应该把它写在方法中,并为例如运行2个单独的测试用例吗

    public void Message_Without_Template_Is_Sent()
    {
         if(isPaidAccount)
         {
              //test for return value here
         }
         else
         {
              //test for exception here
         }
    }

选择性忽略NUnit测试

您可以像Matthew状态一样使用Assert.Ignore()。如果您想对结果进行不同的分类,也可以使用Assert.Inconclusive()

这个问题/答案有点类似:以编程方式跳过nunit测试