【发布时间】:2016-10-04 18:16:21
【问题描述】:
为了测试使用 DirectX 的可视化 WPF 控件库,我创建了一些单元测试来创建 DirectX 场景、屏幕截图,然后与预期图像进行比较。
我知道这是一种脆弱的单元测试技术(视觉比较),但它可以帮助我们涵盖大量可能的组合。
我遇到的问题是测试在本地运行得很好,但在构建服务器上失败并出现错误:
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 Warp(软件)驱动程序。
我怀疑related to this issue here 团队城市构建代理的用户配置文件不允许获取 DirectX 设备。我已经更改了 Teamcity 服务,并且 TeamCity 构建代理以用户身份登录,但仍然没有运气。
有什么想法吗?
【问题讨论】:
-
可能需要允许服务与桌面交互?
-
是这样的。我不知道它是否a.) 可能和b.) 如果可能的话,如何配置它。
-
oo 我刚刚看到服务中的复选框 -> Teamcity Build Agent -> 登录为!我会试试的...
-
...不,它仍然失败,同样的错误,但你给了我一些东西要搜索..
-
不是 32/64 位的问题吗?我不确定组件注册是否受 WOW 重定向的影响。
标签: c# wpf unit-testing directx teamcity