执行单元测试时,C#Configuration Manager引用machine.config而不是app.config

时间:2018-06-19 18:59:14

标签: c# unit-testing visual-studio-2017 app-config

我已经阅读了许多其他文章,内容涉及在调用ConfigurationManager.ConnectionStrings时解决NullReferenceException的问题,以及单元测试使用machine.config而非app.config时的操作,但没有一个对我有用。以下是我尝试过但到目前为止仍未成功的方法列表。

  1. 将现有项添加到单元测试中,并引用要测试的项目的app.config
  2. 从目标项目中复制app.config并将其粘贴到单元测试项目中
  3. 确保单元测试项目的bin文件夹正在复制适当的配置文件
  4. 设置单元测试的属性以照常复制并输出

以下是我在单元测试项目中当前配置的副本:

<configuration>
<appSettings>
    <add key="Environment" value="Development" />
</appSettings>
<connectionStrings>
<add name="Connection.Development" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\***;Initial Catalog=***;Persist Security Info=True;Integrated Security=True;Pooling=False" />
</connectionStrings>
</configuration>

我期望下面的代码行返回 Connection.Development 连接字符串,但我从machine.config中始终获取 LocalSqlServer 连接字符串

string connectionString = ConfigurationManager.ConnectionStrings["Connection.Development"].ConnectionString;

我正在使用VS2017,运行.Net Core 2.0,并尝试连接到应用程序中的本地MS SQL Db。如果有人能告诉我他们如何解决此问题,将不胜感激。如果您知道原因,也请传递这些信息。

0 个答案:

没有答案