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

5
我有一个组件从标准的.NET配置文件(app.config)中读取一些配置信息。当我在这个组件上运行单元测试(使用TD.NET),我注意到配置文件没有被读取。检查AppDomain.CurrentDomain.SetupInformation.ConfigurationFile后,我注意到它的值被设置为C:\Users\ltal\AppData\Local\Temp\tmp6D2F.tmp(某些临时随机位置)。这是为什么?(是NUnit或TD.NET的问题吗?)我想为了测试的缘故可以自己设置这个SetupInformation对象,还在想为什么它不是默认创建的。
2个回答

3

为了解决这个问题,你可以在单元测试项目中创建一个app.config。这将被单元测试调用代替主app.config。然后,你可以在单元测试中更改app.config中的值,从而更轻松地测试不同的值和配置,即在运行测试之前可以设置测试app.config的某些值。
另一种选择可能是将设置放置在主项目的Settings.setting文件中。然后您不必更改单元测试项目中的任何内容。有关设置和app.config之间差异的一些链接- MSDN论坛, StackOverflow, 用户设置-MSDN 当然,第三种选择是通过引入接口并将依赖注入到组件中来消除对app.config的依赖,从而使其易于模拟并进行单元测试。

设置(Settings)和配置(configuration)之间有什么区别?你有相关链接吗?应该把什么放在哪里...? - lysergic-acid
设置文件保存在C:\ Documents and Settings下的位置,并且通常用于用户特定设置(例如背景颜色),您希望在运行时更改并可能保留应用程序升级。我通常会将连接字符串之类的内容存储在App.Config文件中。编辑以包括链接。 - Peter Kelly

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接