调试行
时 Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
Aplication.Executable将在Bin \ Debug。
中返回我的程序.EXE文件路径但是在单元测试期间,它将返回Visual Studios .EXE文件路径而不是我的程序。有没有办法解决?我搜索过,我注意到有人提到要尝试使用像
这样的东西var execPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
然后传递那个
Configuration config = ConfigurationManager.OpenExeConfiguration(execPath);
然而,execPath似乎只返回文件夹,而不是程序EXE本身。
感谢
答案 0 :(得分:0)
根据我的评论:
如果您正在谈论"单元测试"你的代码不能的任何原因 隔离依赖项,以便您可以模拟/存根从中返回的内容 配置管理器?单元测试不应该依赖于文件系统中的路径。
只想为此添加更多内容。我知道你在实际代码和单元测试中运行时遇到路径问题。如果你以不同的方式处理这种情况并想到你真正尝试单元测试的话,那么你可能不会遇到你现在遇到的问题。
Web上有很多关于如何为单元测试目的存根/模拟配置和文件路径的示例。但下面的链接可能会帮助您朝着正确的方向发展。
http://chrisondotnet.com/2011/05/configurationmanager-wrapper-for-unit-testing/