爲了測試使用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 - >登錄爲!我會嘗試... –