C# 运行NUnit测试(TD.NET)时配置文件错误
我有一个从标准.NET配置(app.config)文件中读取一些配置的组件 当我为这个组件运行单元测试(NUnit)(使用TD.NET)时,我注意到配置文件没有被读取 检查C# 运行NUnit测试(TD.NET)时配置文件错误,c#,unit-testing,nunit,testdriven.net,C#,Unit Testing,Nunit,Testdriven.net,我有一个从标准.NET配置(app.config)文件中读取一些配置的组件 当我为这个组件运行单元测试(NUnit)(使用TD.NET)时,我注意到配置文件没有被读取 检查AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 我注意到它的值被设置为C:\Users\ltal\AppData\Local\Temp\tmp6D2F.tmp(一些临时随机位置) 发生这种情况有什么原因吗?(这是NUnit还是TD.NET的错?) 我想为了测
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
我注意到它的值被设置为C:\Users\ltal\AppData\Local\Temp\tmp6D2F.tmp(一些临时随机位置)
发生这种情况有什么原因吗?(这是NUnit还是TD.NET的错?)
我想为了测试,我可以自己设置这个SetupInformation对象,但还没有尝试过,但仍然想知道为什么它是这样创建的,而不是默认的。默认情况下,.NET运行时在
AppDomain
的工作目录中查找,该目录由NUnit在临时位置管理
此链接提供了两种有关如何获取配置文件的解决方案:
基本上,他们需要生活在测试目录中。- 要解决此问题,可以在单元测试项目中创建app.config。然后,您的单元测试将调用它来代替主app.config。然后,您可以在单元测试中更改该app.config中的值,从而更容易测试不同的值和配置,即,您可以在运行测试之前使用某些值设置测试app.config
ConfigurationManager.AppSettings[“”]=“”代码>
- 另一个选项可能是将设置放置在主项目的settings.setting文件中。您不必在单元测试项目中更改任何内容。一些关于设置和app.config之间差异的链接-
- 当然,第三种选择是通过引入接口从组件中删除对app.config的依赖关系,并将依赖关系注入到组件中,以便于模拟和单元测试