2016-06-10 77 views
0

我有一个单元测试项目,示例代码如下。基本上我的计划是在运行时创建数据,这些数据将作为单元测试的数据源。MSTest中runsettings和testsettings之间的区别究竟是什么

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


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

数据创建发生在ClassInitialize部分。当我将设置文件设置为testsettings文件时,该项目运行时没有任何问题。

当我将testsettings文件更改为指向runsettings文件(因为我有很多从runsettings文件传递的数据),我得到下面的错误行“单元测试适配器未能连接到数据源或读取数据。有关解决此错误的详细信息,请参阅“故障排除数据驱动的单元测试”

我很好奇,想知道什么,当我运行使用testsettings要取得成功,但使用runsettings文件时发生的事情,在使用runsettings文件时得到所有问题以及如何避免这种情况。

另请参阅How to execute a line of code which is a data setup code in MSTest before all test

+0

“将testsettings文件更改为指向runsettings文件”是什么意思? –

回答

2

基本上,testsettings文件是为了与旧的单元测试兼容。它在VS 2013中被runsettings所取代。在使用测试设置时,它会回退到某些传统兼容模式,这些模式在诸如相对路径和内容等行为方面表现不同。不知道你的实际问题。

+0

谢谢你。我的问题是我需要在测试开始之前执行一些代码行。这是使用testsettings但不使用runsettings文件 –

+0

您是否正在使用TestInitialize,ClassInitialize,AssemblyInitialize? –

+0

是的。我尝试了所有选项,并且现在用尽了选项和初始化。感谢您的建议 –

相关问题