2011-05-18 78 views
5

我有一个组件从标准.NET配置(app.config)文件读取一些配置。运行NUnit测试时错误的配置文件(TD.NET)

当我运行这个组件(使用TD.NET)的单元测试(NUnit)时,我注意到配置文件没有被读取。

在的AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

检查我注意到,它的值被设定为C:\用户\ ltal \应用程序数据\本地\ TEMP \ tmp6D2F.tmp(一些临时随机locaiton)。

这是为什么发生的原因吗? (是NUnit的或TD.NET的错吗?)

我想我可以设置此SetupInformation反对自己的测试的缘故,还没有尝试过呢,但仍然不知道为什么它被这样创造,而不是作为默认。

回答

3
  • 要解决这个问题,你可以在你的单元测试项目中创建一个app.config。这将在你的单元测试中被调用来代替主要的app.config。然后,您可以在单元测试中更改该app.config中的值,以便更轻松地测试不同的值和配置,即可以在运行测试之前使用特定值设置测试app.config。

    ConfigurationManager.AppSettings[""] = "";

  • 另一种选择可能是放置在您的主项目的Settings.setting文件设置。然后,您不必在单元测试项目中更改任何内容。关于设置和app.config中的区别某些链接 - MSDN forumsStackOverflowUser Settings - MSDN

  • 当然,第三种办法则是通过引入接口,以消除从组件在app.config的依赖并注入的依赖插入到组件中,以便轻松地将其嘲讽出来并进行单元测试。

+0

设置和配置有什么区别?你有链接吗?应该去哪里..? – 2011-05-18 15:44:25

+0

将设置文件保存到C:\ Documents and Settings下的某个位置,通常用于在运行时期间更改用户特定的设置(如背景颜色),并可能会持续升级应用程序。我通常会在App.Config文件中存储连接字符串等内容。编辑包含链接。 – 2011-05-18 15:50:28