Visual Studio参数化unit testing就像java一样

在java测试环境中我可以使用参数化unit testing,如下面的代码,

@RunWith(value = Parameterized.class) public class JunitTest6 { private int number; public JunitTest6(int number) { this.number = number; } @Parameters public static Collection data() { Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } }; return Arrays.asList(data); } @Test public void pushTest() { System.out.println("Parameterized Number is : " + number); } } 

但是我怎么能在visual studiounit testing项目中做到这一点。 我找不到参数化属性或这样的任何样本。

使用NUnit框架 ,您可以将参数传递给测试,如下所示:

 [TestCase(1, 2, 3)] [TestCase(10, 20, 30)] public void My_test_method(int first, int second, int third) { // Perform the test } 

这将分两次运行,在第一次运行中传递值1, 2, 3在第二次运行中传递10, 20, 30

编辑:有关NUnit的可用测试运行器的概述, 请参阅此SO问题

如果您可以参考NUnit ,请查看参数化测试页面。 支持内联静态和动态数据值。

如果由于某种原因不想使用NUnit,则MSTest或VSunit testing支持从 CSV,XML或DB 获取输入 。 可通过扩展程序获得内联支持。 尚未动态支持..如果要动态计算输入/输出,则必须将动态代码添加到测试方法中。

现在也可以通过MSTest 2框架实现。

它带有’DataTestMethod’属性和相关的’DataRow’属性。 这与NUnit的工作方式类似。

以下是一些如何使用它的好例子。