我在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服务运行? –