无法在MTM中使用DataRow属性运行测试用例

时间:2018-05-16 02:28:28

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

我正在尝试运行类似下面在Microsoft Test Manager中提到的测试用例。我在测试套件下在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,不返回值且不应采用任何参数。例如:public void Test.Class1.Test()。

1 个答案:

答案 0 :(得分:0)

您需要将[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) {
    //...
}

这样测试方法可以有参数并使用它们来参数化测试。

相关问题