[英]DataTestMethod and DataRow attributes in MSTEST
我在Microsoft視頻中看到了有關這些屬性的Visual Studio Update 2。 但是,我找不到有關它們的任何其他信息,也無法獲得與它們一起構建的項目。
有人知道這些屬性或如何使它們起作用嗎?
[DataTestMethod]
[DataRow("a", "b")]
[DataRow(" ", "a")]
public void TestMethod1(string value1, string value2)
{
Assert.AreEqual(value1 + value2, string.Concat(value1, value2));
}
我知道這是一個老問題,但是現在有一個很好的演練發布在https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-ms-test/
簡而言之,您將需要安裝MSTest.TestFramework
和MSTest.TestAdapter
,並刪除對Microsoft.VisualStudio.QualityTools.UnitTestFramework
引用。 然后,根據您的示例,您可以使用[DataTestMethod]
屬性指示參數化測試,並可以使用[DataRow]
屬性添加參數。 [DataRow]
屬性中的值將按照指定的順序傳遞到測試方法。
請注意, [DataRow]
屬性中的值必須是基元,因此不能使用DateTime
或decimal
。 如果需要它們,則必須解決此限制(例如,可以用三個整數參數分別代表年,月和日,而不是使用DateTime
參數來表示日期,並在測試體內創建DateTime
)。
最后,已添加此功能(仍在預發行版中) https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/
基本上,必須做兩件事:
1)安裝兩個NuGet軟件包(版本並不重要,但這就是我所擁有的)
<package id="MSTest.TestAdapter" version="1.1.5-preview" targetFramework="net452" />
<package id="MSTest.TestFramework" version="1.0.6-preview" targetFramework="net452" />
2)刪除舊測試庫中的refenrece,因為它具有在相同名稱空間中定義的相同屬性-這樣做是為了實現向后兼容
Microsoft.VisualStudio.QualityTools.UnitTestFramework
看來,這僅在WinRT / Metro的單元測試項目中可用,現在在Windows Phone 8更新2中可用。這對於我為什么不對所有使用mstest的測試都可用的原因還是個謎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.