运行 NUnit 测试 (TD.NET) 时配置文件错误



我有一个组件,它从标准.NET配置(app.config)文件中读取一些配置。

当我为此组件运行单元测试 (NUnit) 时(使用 TD.NET),我注意到配置文件未被读取。

经检查AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

我注意到它的值被设置为 C:\Users\ltal\AppData\Local\Temp\tmp6D2F.tmp(一些临时随机定位)。

为什么

会发生这种情况有什么原因吗?(是 NUnit 还是 TD。网的错?

我想我可以为了测试而自己设置这个 SetupInformation 对象,还没有尝试过,但仍然想知道为什么它是这样创建的而不是默认的。

  • 若要解决此问题,可以在单元测试项目中创建一个 app.config。然后,您的单元测试将调用它来代替主 app.config。然后,您可以在单元测试中更改该 app.config 中的值,从而更轻松地测试不同的值和配置,即您可以在运行测试之前使用某些值设置测试 app.config。

    ConfigurationManager.AppSettings[""] = "";

  • 另一种选择可能是将设置放在主项目的 Settings.set 文件中。这样,您就不必更改单元测试项目中的任何内容。有关设置和 app.config 之间区别的一些链接 - MSDN 论坛、StackOverflow、用户设置 - MSDN

  • 当然,第三种选择是通过引入接口从组件中删除对 app.config 的依赖,并将依赖关系注入组件,使其易于模拟和单元测试。

默认情况下,.NET 运行时在 AppDomain 的工作目录中查找,该目录由 NUnit 在临时位置管理。

此链接提供了有关如何获取配置文件的两种解决方案:

http://blogs.msdn.com/b/josealmeida/archive/2004/05/31/loading-config-files-in-nunit.aspx

基本上,他们需要生活在测试目录中。

最新更新