为简单起见,我通常将很多配置(即 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”文件夹),它似乎永远无法在测试时找到那些外部文件正在执行。我尝试过使用后期构建操作来完成这项工作,但没有运气。有没有办法在运行时将这些外部文件复制到正确的输出文件夹中?