我指的是使用app.config
文件中的连接字符串创建数据驱动的单元测试用例的文章。
[TestClass]
public class IntegrationTest
{
public TestContext TestContext { get; set; }
[TestMethod]
[DataSource("MySQLDataSource")]
public void TestRequestSummary()
{
string customerId = TestContext.DataRow["MessageId"].ToString();
Assert.IsNotNull(customerId);
}
}
App.config
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools"
type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<connectionStrings>
<add name="MySQL"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MYPortal;Integrated Security=True;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MySQLDataSource" connectionString="MySQL"
dataTableName="ServiceLog" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
</configuration>
当我尝试调试测试用例时,它失败并显示以下错误:
Result2 StackTrace:
在Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDataSource.GetData(ITestMethod testMethodInfo,ITestContext testContext)
Result2消息:“ Microsoft.VisualStudio.TestTools.UnitTesting.TestConfiguration”的类型初始值设定项引发了异常。
有人可以帮我解决这个问题吗?
环境:
答案 0 :(得分:0)
我使用MSTest v2作为我的单元测试框架,看来他们已经更改了此特定版本的配置部分。
我在以下线程中找到了答案:
https://github.com/Microsoft/testfx/issues/129#issuecomment-354124544
代码:
将我的app.config文件更改为:
<section name="microsoft.visualstudio.testtools"
type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection,
Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions"/>