我正在幫助一個團隊由於測試失敗而開始失敗。此配置來自哪裏?
失敗是由於缺少連接字符串配置引起的。我檢查了關於配置文件的常見問題,以確保連接字符串的名稱完全正確。
最後,我獲得了配置文件的完整路徑,以檢查構建服務器上是否包含預期的確切配置。
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