簡體   English   中英

MSTEST中的DataTestMethod和DataRow屬性

[英]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.TestFrameworkMSTest.TestAdapter ,並刪除對Microsoft.VisualStudio.QualityTools.UnitTestFramework引用。 然后,根據您的示例,您可以使用[DataTestMethod]屬性指示參數化測試,並可以使用[DataRow]屬性添加參數。 [DataRow]屬性中的值將按照指定的順序傳遞到測試方法。

請注意, [DataRow]屬性中的值必須是基元,因此不能使用DateTimedecimal 如果需要它們,則必須解決此限制(例如,可以用三個整數參數分別代表年,月和日,而不是使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM