我正在帮助一个团队由于测试失败而开始失败。此配置来自哪里?
失败是由于缺少连接字符串配置引起的。我检查了关于配置文件的常见问题,以确保连接字符串的名称完全正确。
最后,我获得了配置文件的完整路径,以检查构建服务器上是否包含预期的确切配置。
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
的路径没有指向TestProject.exe.config
文件,而是指着vstest.executionengine.x86.exe.Config
在以下位置:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine.x86.exe.Config
此文件不包含连接字符串的。
当我写出所有从配置可用的连接字符串,我得到的默认连接字符串:
名称:LocalSqlServer连接:数据源= \ SQLEXPRESS;集成 安全性= SSPI; AttachDBFilename = | DataDirectory | aspnetdb.mdf;用户 Instance = true。中止测试执行。
这是来自machine.config
文件(荣誉petelids)。
因此,最大的问题是:
为什么vstest.executionengine.x86.exe.Config
被使用,而不是app.config
(在运行时TestProject.exe.config
)? (我可以猜测这是因为运行的进程是测试运行器,但我认为可以公平地说,测试运行器会让测试项目使用自己的配置文件,这是正常情况)。
只是一个猜测可能是它在注册表中定义 – 2014-08-29 11:06:08
也许它来自machine.config文件? - 适用于64位的'%windir%\ Microsoft.NET \ Framework \ [版本] \ config \ machine.config'或'%windir%\ Microsoft.NET \ Framework64 \ [版本] \ config \ machine.config' – petelids 2014-08-29 11:21:23
@ petelids - 现货。这是因为'vstest.executionengine.x86.exe.Config'中没有连接字符串 - 那么为什么它使用'vstest.executionengine.x86.exe.Config'而不是app.config来进行测试项目? – Fenton 2014-08-29 12:45:55