2010-11-11 45 views
0

因此,TestMethod在一次测试运行中只运行一次。使用不同数据集运行TestMethod而不是数据库

我该如何在一次测试运行中让TestMethod运行多次,每次都为我设置的不同数据集?我的数据不是来自数据库或文件;我想构建测试数据模型的几个不同的内存实例。

TestInitialize不让我这样做,因为它只运行一次。

什么在控制TestMethods的执行?如何让它为每个数据集重新运行我的TestMethods,然后如何访问数据集?

我以为TestContext会很有用,但它似乎只是数据库?

回答

1

什么你正在寻找的是所谓的数据驱动测试 。 看例如有关如何使用MSTest完成此操作的说明,请参阅herehere

HTH。
Thomas

+0

谢谢!这基本上是我正在寻找的。 – 2010-11-11 21:53:21

+0

第二个链接已损坏。你能看看能否修好吗? – peval27 2017-04-05 22:06:13

0

您可以定义它调用其它测试方法多次,做正确的设置后,我并不是说这是做一件好事的测试方法,但我相信它会工作

public class TestClass 
{ 
//This is where the per-data-source test is. This is not marked as a TestMehod because 
//it will not be invoked directly by the test runner. 
public void ActualTest() 
{ 
//Per-data-source test logic here. 
} 
[TestMethod] 
public void RunActualTestsMultipleTimesWithDifferentConfigs() 
{ 

//Setup for test run with data set 1 
ActualTest(); 
//Setup for test with data set 2 
ActualTest(); 
} 
} 

这感觉像一个可怕的,可怕的黑客,我坦率地承认这一点。如果我有其他选择,我不会使用它,但它可能是一个选项。

另一种可能性是寻找到MSTest的是如何扩展的,具体而言即是否有任何mechinism修改或扩展的测试运行

+0

扩展测试框架将是一个完全不同的项目,但我认为它很有趣。 MSDN没有给出方法的描述,我没有看到任何'虚拟'。无论如何,这些东西可以在命名空间Microsoft.VisualStudio.TestTools.Framework中找到。 – 2010-11-13 22:36:30

相关问题