簡単にするために、通常、多くの構成 (つまり、app.config と web.config の内容) を別々の .config ファイルに分割し、「configSource」属性を使用してメインの構成ファイルからそれらを参照します。例えば:
<appSettings configSource="appSettings.config"/>
次に、すべてのキーと値のペアを、メインの構成ファイルにインラインで配置する代わりに、その appSettings.config ファイルに配置します。
<appSettings>
<add key="FirstKey" value="FirstValue"/>
<add key="SecondKey" value="SecondValue"/>
...
</appSettings>
これは通常、アプリケーション自体ではうまく機能しますが、何らかの理由で、これらの外部ファイルのいずれかに保存されている構成セクションから何らかの値を取得する必要がある単体テストを作成しようとすると、問題が発生します。(これらのほとんどは構成システムに依存しているため、「統合テスト」と見なされる可能性が高いことを理解しています。「純粋な単体テスト」もありますが、それらは問題ではありません。私は本当に探していますこれらの構成値が正しく取得され、正しい方法で動作に影響を与えることをテストします)。
MSTest が出力をコンパイルして難読化されたように見えるフォルダーにコピーする方法が原因で、テストの実行ごとに異なります (ご想像のとおり「bin」フォルダーではなく)、テスト中にこれらの外部ファイルを見つけることができないようです。実行中です。これを機能させるためにビルド後のアクションをいじってみましたが、うまくいきませんでした。これらの外部ファイルを実行時に正しい出力フォルダーにコピーする方法はありますか?