0

使用 VS 2012 C# .net 4.0,我有一个项目,它使用 ConfigurationManager 构建控制台应用程序进行配置。这一切都很好。

我在同一个解决方案中有第二个项目,用于测试第一个项目(使用 nunit)。
这个 nunit 项目包括第一个项目作为参考,并将第一个项目的可执行文件作为子进程执行。

这行不通。因为,虽然 nunit 项目会构建第一个项目的可执行文件,但它不会创建 [第一个项目的可执行文件].exe.config 文件。

有谁知道为什么不?当我构建 nunit 项目时,我可以按下一个按钮来获取 [第一个项目可执行文件].exe.config 吗?

4

2 回答 2

1

任何时候使用配置文件时,该文件都必须与正在运行的进程相关联。在这种情况下,正在运行的进程就是您的单元测试项目。

当您ConfigurationManager在单元测试的上下文中使用时,它将App.Config为单元测试项目查找配置文件 () 以获取值。

您正在引用控制台应用程序程序集,但无法在单元测试过程中引用控制台应用程序的配置文件。

因此,您应该App.Config向单元测试项目添加一个新的并将您的配置值放在那里。

希望这可以帮助。

于 2013-03-19T15:03:43.590 回答
0

它可能不漂亮,但添加预构建事件:

copy "$(SolutionDir)ConsoleApp\App.config" "$(TargetDir)ConsoleApp.exe.config"

解决了我眼前的问题。

于 2013-03-20T08:28:25.547 回答