[英]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.