[英]How to pass parameter values from test case in TFS to test method in unit test method using MTM?
我想從Team Foundation Server中存在的測試用例中傳遞參數值。 我在Microsoft測試管理器的幫助下進行自動化。
以下是使用單元測試項目創建的示例測試方法。
namespace UnitTestProject1
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1(int a, int b, int expectedResult)
{
var sut = new Class1();
var result = sut.Add(a,b);
Assert.AreEqual(expectedResult, result);
}
}
}
現在,當我嘗試構建它時,出現以下錯誤:
UTA007:類UnitTestProject1.UnitTest1中定義的方法TestMethod1沒有正確的簽名。 標記有[TestMethod]屬性的測試方法必須是非靜態的,公共的,不返回值並且不能使用任何參數。 例如:public void Test.Class1.Test()。 此外,如果您正在運行異步單元測試,則return-type必須為Task。 示例:公共異步任務Test.Class1.Test2()。
在這種情況下如何實現參數傳遞?
要從TFS中的TestCase讀取參數值,可以使用數據驅動的單元測試:
public TestContext TestContext { get; set; }
public DataRow DataRow { get; set; }
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://serverName:8080/tfs/MyCollection;teamProjectName", "541", DataAccessMethod.Sequential)]
[TestMethod]
public void TestMethod()
{
string parameter1 = TestContext.DataRow[0].ToString(); // read parameter by column index
string parameter2 = TestContext.DataRow[1].ToString();
var sut = new Class1();
var result = sut.Add(a, b);
Assert.AreEqual(parameter1, result);
}
注意:541是TestCase ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.