我在有关这些属性的 Visual Studio 更新 2 的 Microsoft 视频中看到过。但是,我找不到关于它们的任何其他信息,也无法使用它们构建项目。
有人知道这些属性或如何让它们工作吗?
[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 (链接现在是通过 wayback 机器存档)。
简而言之,您需要安装 MSTest.TestFramework
和 MSTest.TestAdapter
,并删除对 Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用
。然后,您可以使用 [DataTestMethod]
属性指示参数化测试,并可以根据您的示例使用 [DataRow]
属性添加参数。 [DataRow]
属性中的值将按照指定的顺序传递给测试方法。
请注意,[DataRow]
属性中的值必须是原始值,因此您不能使用 DateTime
或 decimal
等.如果你想要它们,你将不得不解决这个限制(例如,不是用 DateTime
参数来表示日期,你可以用三个整数参数来表示年、月和日,并创建 DateTime
在测试主体中)。
关于c# - MSTEST 中的 DataTestMethod 和 DataRow 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921226/