繁体   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