繁体   English   中英

如何忽略 MSTest 中的特定测试用例

[英]How to ignore particular test case in MSTest

我试图通过为DataRow属性添加Ignore关键字来忽略测试用例:

[TestClass]
public class MathTests
{
    [TestMethod]
    [DataRow(1, 1, 2)]
    [DataRow(2, 2, 3), Ignore]
    public void Sum_Test(int a, int b, int expectedSum)
    {
        var sut = new Math();
        
        var sum = sut.Sum(a, b);
        
        Assert.IsTrue(sum == expectedSum);
    }
}

public class Math
{
    public int Sum(int a, int b)
    {
        return a + b;
    }
}

但它忽略了整个测试:

在此处输入图像描述

  • 目标:.NET 6
  • MSTest.TestFramework:v2.2.8
  • IDE:骑手

在 MSTest 中如何忽略特定的测试用例

首先,没有Ignore关键字。 你在做什么只是在同一行中组合 2 个属性。 所以,你的代码相当于:

[TestClass]
public class MathTests
{
    [TestMethod]
    [DataRow(1, 1, 2)]
    [DataRow(2, 2, 3)]
    [Ignore]
    public void Sum_Test(int a, int b, int expectedSum)
    {
        var sut = new Math();
        
        var sum = sut.Sum(a, b);
        
        Assert.IsTrue(sum == expectedSum);
    }
}

21.3 属性规范

属性在属性部分中指定。 属性部分由一对方括号组成,方括号围绕着一个或多个属性的逗号分隔列表。 在这样的列表中指定属性的顺序,以及附加到同一程序实体的部分的排列顺序并不重要。 例如,属性规范 [A][B]、[B][A]、[A, B] 和 [B, A] 是等价的。

你可以做什么:

  1. 最简单的解决方案就是将特定数据行注释掉。 (或者你可以使用预编译变量。在这种情况下,启用所有被忽略的测试用例会更容易)

    PRO:这很容易。

    CONTRA:您将无法在 GUI 中看到这些测试用例

  2. 您可以创建 2 个测试并使用TestCathegory属性标记其中一个测试。

    PRO:可以在 GUI 中看到此测试。

    PRO:您将能够使用或排除特定TestCathegory来执行测试。

    CONTRA:你必须重复你的测试。

    CONTRA:您必须使用命令行参数来包含或排除构建服务器上的特定TestCathegory

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM