为了测试使用DirectX的可视WPF控件库,我创建了几个单元测试,它们创建了DirectX场景,屏幕截图,然后与预期图像比较。在Teamcity构建服务器上进行单元测试D3DERR_NOTAVAILABLE
我知道这是一个脆弱的单元测试技术(视觉比较),但它可以帮助我们涵盖大量的可能组合。
我的问题是测试在本地运行得很好,但错误在构建服务器失败:
SharpDX.SharpDXException : HRESULT: [0x8876086A], Module:
[SharpDX.Direct3D9], ApiCode: [D3DERR_NOTAVAILABLE/NotAvailable], Message: Unknown
at SharpDX.Result.CheckError()
at SharpDX.Direct3D9.D3D9.Create9Ex(Int32 sDKVersion, Direct3DEx arg1)
at SharpDX.Direct3D9.Direct3DEx..ctor()
但是,如果我登录到构建服务器并运行测试,他们通过! (见下文)
构建服务器为Windows Server 2012 R2和具有DirectX10的偏差(软件)的驱动程序。
我怀疑related to this issue here团队城市构建代理的用户配置文件不允许获取DirectX设备。我已经改变了Teamcity服务,TeamCity构建了以用户身份登录的代理,但仍然没有运气。
任何想法?
可能是服务需要被允许与桌面交互? – rene
就是这样的。我不知道它是否是。)可能与否,以及b。)如果可能,如何配置它。 –
oo我刚刚看到服务中的复选框 - > Teamcity Build Agent - >登录为!我会尝试... –