1

MVC .NET アプリケーションがあります。このソリューションには、アプリケーション自体と、統合テスト (データベース接続が必要なデータ層テストを含む) も含まれる単体テスト プロジェクトが含まれています。

両方のプロジェクトの接続文字列を別の構成ファイルに入れることにしました。タグの内容を<connectionStrings>新しいファイルにコピーし、Web プロジェクトの Web.config ファイルとテスト プロジェクトの app.config ファイルで configSource 属性を使用しました。Web プロジェクトは以前と同じようにデバッグおよび実行されます。テスト プロジェクトをデバッグできません。終了します。

'vstest.executionengine.x86.exe' (マネージド (v4.0.30319)): ロードされた 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration.resources\v4.0_4.0.0.0_de_b03f5f7f11d50a3a\System.Configuration .resources.dll'

タイプ 'System.Configuration.ConfigurationErrorsException' の初回例外が System.Configuration.dll で発生しました

実行しようとすると、すべてのテストが失敗します。元のバージョンの app.config ファイルを使用すると、合格します。

これは動作する app.config のバージョンです:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <connectionStrings>
    <add name="TumorModelsDB" connectionString="Data source=tsql2; Initial Catalog=TumorModelle; User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
    <add name="AzaraIntegrationTest" connectionString="Data Source=tsql2;Initial Catalog=AzaraIntegrationTest;User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

そして、これは動作しないバージョンです (文字通り、他のプロジェクトが動作する web.config と同じです):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <connectionStrings configSource="ConnectionStrings.config" />
</configuration>

(完全な) 新しい ConnectionStrings.config ファイルは次のとおりです。

  <connectionStrings>
    <add name="TumorModelsDB" connectionString="Data source=tsql2; Initial Catalog=TumorModelle; User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
    <add name="AzaraIntegrationTest" connectionString="Data Source=tsql2;Initial Catalog=AzaraIntegrationTest;User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
  </connectionStrings>

ConnectionStrings.config ファイルの内容は、接続文字列タグの古い内容とまったく同じです。configSource 属性のファイル名にタイプミスはありません。ConnectionStrings.config ファイルはテスト プロジェクトに存在します (Web プロジェクトからのリンクではありません)。Build Action は Content に設定され、Copy to Output は Do not copy に設定されています。問題の原因を探すアイデアが不足しています。何か案は?

4

1 に答える 1