【问题标题】:Can not run test cases with DataRow attribute in MTM无法在 MTM 中运行具有 DataRow 属性的测试用例
【发布时间】:2018-10-25 23:05:11
【问题描述】:

我正在尝试在 Microsoft 测试管理器中运行如下所述的测试用例。我在测试套件下的 MTM 中创建了一个测试用例,并在自动化脚本中附加了以下创建的测试用例。

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

[TestMethod]
[DataRow(3, 4, 7)]
[DataRow(5, 6, 11)]
public void When_add_two_numbers(int firstNumber, int secondNumber, int expectedResult)
{
    //Arrange
    Calculator calc=new Calculator();

    //Act
    var actualResult = calc.Add(firstNumber, secondNumber);

    //Assert
    Assert.AreEqual(expectedResult,actualResult);
}

因为 MSTest 现在支持 DataTestMethodDataRow 属性,所以我希望此类数据驱动测试也能够在 MTM 上运行。 MTM不支持吗?如果不是,那么解决方法是什么?

当我尝试在 MTM 中运行此测试用例时遇到错误。

“方法”没有正确的签名。用 [TestMethod] 属性标记的测试方法必须是非静态的、公共的、不返回值且不应带任何参数。例如:public void Test.Class1.Test()。

【问题讨论】:

    标签: c# unit-testing mstest microsoft-test-manager


    【解决方案1】:

    您需要将[TestMethod] 替换为[DataTestMethod]

    [DataTestMethod] //<-- THIS IS REQUIRED
    [DataRow(3, 4, 7)]
    [DataRow(5, 6, 11)]
    public void When_add_two_numbers(int firstNumber, int secondNumber, int expectedResult) {
        //...
    }
    

    以便测试方法可以具有参数并使用它们对测试进行参数化。

    【讨论】:

    • [DataTestMethod] 属性不受 MTM 支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2017-10-16
    相关资源
    最近更新 更多