2016-06-10 33 views
0

我有一个非常罕见的情况。我有一个函数,我们可以将其称为DataGenerator。该方法会生成测试执行所需的所有测试XML。这些XML在每个MSTest中都被引用为数据源。如何在所有测试之前执行MSTest中的数据设置代码的一行代码

[TestMethod] 
    [TestCategory("UITest"), TestCategory("PersonalDetailsFlow")] 
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\TestFlows.xml", "flow", DataAccessMethod.Sequential)] 
    public void TestMethod1() 
    { 
    //Test Code 
    } 

,而且我用下面的代码来创建测试个XML

[ClassInitialize] 
    public static void ClassInit(TestContext context) 
    { 
     DriverData driverData = new DriverData(); 
     driverData.DataGenerator(); 
    } 

当我运行这段代码,我得到下面的错误线 单元测试适配器未能连接到数据源或读取数据。有关解决此错误的更多信息,请参阅“数据驱动的单元测试故障排除”

我相信这是因为MSTEST正在查找| DataDirectory | \ |中的TestFlow.xml。

谁能请帮助我如何执行代码

DriverData driverData = new DriverData(); 
driverData.DataGenerator(); 

之前的任何代码被执行,这样我可以避开上述消息。任何指针会非常好

+0

你尝试使用[AssemblyInitialize]? –

+0

我试过了。这似乎不起作用。它给出了相同的消息 –

+0

您可以将XML作为字符串返回而不是依赖于外部文件吗? – Kritner

回答

0

你尝试过使用静态构造函数吗? 请参阅:MSDN - static constructor

最佳, 丹尼尔

+0

是的。但获得相同的结果。 –

+0

我相信我需要和它一起生活。 –

+0

您可以在一个exe文件中转换XML代,并创建一个PowerShell脚本来首先运行该程序,然后执行测试。您也可以将生成的结果放在TestContext中,并删除DataSource属性。但首先看看已经存在的XML:请参阅[this](http://stackoverflow.com/questions/16025719/why-does-data-driven-unit-test-fail-in-vs2012-when-it-worked -fine-in-vs2010)SO问题;也许你有同样的问题。 –

相关问题