我正在尝试运行类似下面在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现在支持DataTestMethod
和DataRow
属性,所以我希望这些数据驱动的测试也能够在MTM上运行。 MTM不支持吗?如果没有,那么解决方法是什么?
当我尝试在MTM中运行此测试用例时,我遇到了以下错误。
"方法"没有正确的签名。使用[TestMethod]属性标记的测试方法必须是非静态的,public,不返回值且不应采用任何参数。例如:public void Test.Class1.Test()。
答案 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) {
//...
}
这样测试方法可以有参数并使用它们来参数化测试。