我在Windows 7 Pro專用構建機器上設置了CruiseControl.NET(v 1.6.7981.1)。 我有一個VS2012項目設置來建立,然後使用Gallio.Echo.exe運行MBUnit測試。 我的問題是,當CC.NET運行這些測試時,它在其中的幾個失敗,但是當我從命令行運行完全相同的程序,具有完全相同的dll測試,每一個測試通過。我似乎無法弄清楚發生了什麼事。任何人都可以解釋爲什麼一些測試可能會失敗時,CruiseControl運行它們,但通過時,我運行它們?我已經嘗試在CruiseControl服務運行的相同帳戶下運行它們,所以我不認爲它是一個權限問題。我甚至試過把它關掉再打開(機器)。測試在CruiseControl中失敗,但在運行時成功
CruiseControl作爲具有管理權限的登錄的Windows服務運行。 我們的VS項目是一個.NET 4.0桌面應用程序,但我們已經包含了一個以前爲.NET 3.5構建的舊項目,已升級到.NET 4.0。該項目引用了Microsoft.Ink程序集(v 6.1.0.0),並且我確認這是在構建機器上的GAC中。事實上,失敗的測試正在測試使用該程序集的應用程序的一部分。 我們計劃稍後替換這個遺留項目,但現在必須接受它。
下面是測試報告中CruiseControl的錯誤:
System.Runtime.InteropServices.COMException:災難性故障(從HRESULT異常:0x8000FFFF(E_UNEXPECTED)) 錯誤碼:-2147418113 微軟。在的.vb Ink.InkOverlayClass.set_Enabled(布爾採集) 在Microsoft.Ink.InkPicture.set_InkEnabled(布爾值) 於:線1201 .......
這裏是(VB.NET )代碼在哪裏它fai LS
Dim inkPictureObject As New Microsoft.Ink.InkPicture()
...
inkPictureObject.InkEnabled = False
inkPictureObject.Ink = New Ink()
inkPictureObject.InkEnabled = True '<-- fails here
我似乎無法找到除了這個錯誤(COMException occurred: ErrorCode = -2147287036),這(Only while running on VS 2010: COMException: Catastrophic Failure: Error Code: -2147418113)的任何信息均未我還沒有發現有用的,因爲我不分配資源,我有沒有問題時,當我在VS2012中運行程序時,我擊中了那條線。真正的kicker是(如前所述),當我使用與CruiseControl配置中指定的參數相同的參數從命令提示符(以與CruiseControl服務運行時相同的用戶登錄)運行測試時,測試完美地工作。
Gallio.Echo.exe/RNF:測試報告/ RT:XML的內聯/ V:安靜的 「C:\我的項目\ testAssembly.dll」
任何幫助將不勝感激。
您的ccnet服務是否作爲Windows服務運行? –