使用VS 2012 C#.net 4.0,我有一个使用ConfigurationManager for config构建控制台应用程序的项目。 一切都很好。
我在同一个解决方案中有第二个项目用于测试第一个项目(使用nunit) 这个nunit项目包括第一个项目作为参考,并将第一个项目的可执行文件作为子进程执行。
这不起作用。因为,尽管nunit项目构建了第一个项目的可执行文件,但它不会创建[第一个项目可执行文件] .exe.config文件。
任何人都知道为什么不呢?在我构建nunit项目时,是否有一个按钮可以推送[第一个项目可执行文件] .exe.config?
答案 0 :(得分:1)
每次使用配置文件时,该文件都必须与正在运行的进程相关联。在这种情况下,运行过程是您的单元测试项目。
在单元测试的上下文中使用ConfigurationManager
时,它将为单元测试项目查找值的配置文件(App.Config
)。
您正在引用控制台应用程序程序集,但无法在单元测试过程中引用控制台应用程序的配置文件。
因此,您应该向单元测试项目添加一个新的App.Config
并将配置值放在那里。
希望这有帮助。
答案 1 :(得分:0)
它可能不太漂亮,但添加了预构建事件:
copy "$(SolutionDir)ConsoleApp\App.config" "$(TargetDir)ConsoleApp.exe.config"
解决了我当前的问题。