在单元测试中为DataSource属性配置SQL连接字符串 [英] Configure SQL connection string for DataSource attribute in unit testing

查看:441
本文介绍了在单元测试中为DataSource属性配置SQL连接字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我指的是使用SQL 连接字符串app.config文件创建数据驱动的单元测试用例。


https://docs.microsoft.com/en-us/visualstudio/test/walkthrough-using-a-configuration-file-to-define-a-data-source?view=vs-2017


代码:

 [TestClass] 
public class IntegrationTest
{
public TestContext TestContext {get;组; }

[TestMethod]
[DataSource(" MySQLDataSource")]
public void TestRequestSummary()
{
string customerId = TestContext.DataRow [ "&的MessageId QUOT]的ToString();
Assert.IsNotNull(customerId);
}
}

我的App.config文件

<结构> 
< 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 = QUOT; System.Data.SqlClient的" />
< / connectionStrings>
< microsoft.visualstudio.testtools>
< dataSources>
< add name =" MySQLDataSource"的connectionString = QUOT; MySQL的" dataTableName = QUOT; ServiceLog" dataAccessMethod = QUOT;序贯" />
< / dataSources>
< /microsoft.visualstudio.testtools>
< / configuration>

当我尝试调试测试用例时,它失败并出现以下错误:


结果2 StackTrace: 在Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDataSource.GetData(ITestMethod) testMethodInfo,ITestContext testContext)

Result2消息: 类型初始值设定项'Microsoft.VisualStudio.TestTools.UnitTesting.TestConfiguration'引发了异常。


有人可以帮我解决这个问题吗?我正在使用VS 2017专业版

解决方案


嗨sagar-d,


感谢您的发布。


您能否分享一些项目使用框架的详细信息以及您使用的测试(名称和版本)的详细参考资料。因此,我们可以为您重现此问题。


期待收到您的回复。


祝您好运。



Hi,

I am referring to this article for creating data-driven unit test cases using a SQL connection string app.config file.

https://docs.microsoft.com/en-us/visualstudio/test/walkthrough-using-a-configuration-file-to-define-a-data-source?view=vs-2017

Code:

[TestClass]
public class IntegrationTest
{
public TestContext TestContext { get; set; }

	[TestMethod]
	[DataSource("MySQLDataSource")]
	public void TestRequestSummary()
	{
		string customerId = TestContext.DataRow["MessageId"].ToString();
		Assert.IsNotNull(customerId);
	}
}

My App.config file

<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>

When I am trying to debug the test case it failed with the following error:

Result2 StackTrace: at Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDataSource.GetData(ITestMethod testMethodInfo, ITestContext testContext)
Result2 Message: The type initializer for 'Microsoft.VisualStudio.TestTools.UnitTesting.TestConfiguration' threw an exception.

Could anyone help me to solve this? I am using VS 2017 Professional

解决方案

Hi sagar-d,

Thanks for your posting.

Could you share some details about the framework your project uses and the detailed references about test (name and  versions) you use. So that we can reproduce this issue for you.

Looking forward to hearing from you.

Best regards.


这篇关于在单元测试中为DataSource属性配置SQL连接字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆