运行单元测试时更改为 app.config

Posted

技术标签:

【中文标题】运行单元测试时更改为 app.config【英文标题】:Change to app.config while running unit test 【发布时间】:2011-04-03 00:25:33 【问题描述】:

我想运行一些单元测试。对于这个测试,我需要使用 app.config 文件中的另一个值,然后是默认值。

在这个帖子“Reload app.config with nunit”中,我找到了解决办法。

但是在一次运行多个测试时,一些测试失败,因为旧的配置文件(app.config)在处理函数后没有被调用。这怎么可能?

【问题讨论】:

评论因为这不是您问题的直接解决方案:我总是创建一个“配置提供程序”类来包装对 app.config 文件的访问,这样我就可以在单元测试中模拟配置而无需不必担心更改任何文件。您可能需要考虑在您的应用程序中进行设计更改。 【参考方案1】:

您是否想过将对配置设置的访问封装在一个类中?通过这种方式,您可以通过使用一些模拟框架或创建自己的模拟来模拟测试中的配置设置。

【讨论】:

感谢您的回答,但这并不是我的问题的真正解决方案。我不想仅仅为了测试目的而更改我的代码。【参考方案2】:

我没有找到好的解决方案,但现在我使用另一个使用不同 app.config 的测试项目

【讨论】:

以上是关于运行单元测试时更改为 app.config的主要内容,如果未能解决你的问题,请参考以下文章

装配的 App.Config 被忽略;改为读取 Machine.config

用于单元测试的多个 App.config [重复]

使用 NUnit 对 app.config 文件进行单元测试

如何使用主机类型(“Moles”)从测试中读取单元测试项目 App.Config

无法使用 ConfigurationManager 在 C# .NET Core 单元测试项目中读取 app.config

VS2012 & TFS2012 单元测试主要问题