当我尝试运行单元测试(mstest)时,我遇到了这个问题 代码行:
_mainCnStr = System.Configuration.ConfigurationManager.
ConnectionStrings["main"].ConnectionString;
作为空引用回来
当我运行它时,它不会在主UI项目中执行此操作。单元测试项目看到的连接字符串设置的正确方法是什么?我尝试嵌入作为资源。我试过Copy Always。什么是适合我的设置组合?
答案 0 :(得分:9)
有一件事需要关注MSTest(至少来自IDE);它不会在常规输出(bin)文件夹中运行测试,也不会考虑项目的文件包含(“复制到输出目录”)。您经常需要明确告诉它(MSTest)将哪些文件放入测试区域。您需要在此列表中包含“app.config”;或者通过testrunconfig(“部署”),或者通过向受影响的测试装置添加属性([DeploymentItem]
)。
答案 1 :(得分:8)
您应该向单元测试项目添加app.config
。它不会自动使用UI应用程序app.config
中的设置。
答案 2 :(得分:0)
我假设mstests与nunit测试一样,是嵌入在由测试应用程序加载的单独程序集中的?在这种情况下,您可能需要创建一些加载到配置文件中的测试设置代码。