回答
在項目目錄,找到對應於你的Delphi版本的子目錄。在這裏面,你應該找到一個項目組的文件,無論是DUnit2ProjectGroup.bpg,DUnit2ProjectGroup.bdsgroup或 DUnit2Delphi <版> .groupproj。打開它並按順序編譯所有項目。
使用DUnit2與using DUnit幾乎相同。
在在這個問題上的情況下別人絆倒,而試圖讓DUnit2德爾福XE(或XE5)運行:
TL; DR:
Dunit2(官方SourceForge的來源,修訂101)沒有按目前(截至2015-06-01撰寫的這篇文章)在Delphi XE或XE5上成功構建。
爲了使它建立在XE或XE5,去獲得補丁我張貼here
將它應用到源代碼樹。它現在應該可以編譯,你應該可以打開.groupproj併成功構建所有包含的項目。
該修補程序可能與TortoiseSVN一起使用並創建(如果它很重要)。
加長版:
令人驚訝的是,今晚(2015年6月1日),我遵循了相同的步驟,法比奧(2012年不會少),跑進完全相同同樣的問題(E2010不兼容的類型:「指針'和'整數')嘗試在XE和XE5上編譯DUnit2(直接從SourceForge檢出版本101的中繼)。
我已經來到了以下結論:
1)有與頭部的多個版本的問題相對於這兩個XE和XE5。
2)的Fabio以上的關鍵問題提到可以通過用指針代替IntPtr的固定。
這實際上並沒有在代碼中有任何區別,據我所知,測試套件在改變之後也能在XE和XE5上正常傳遞,儘管需要注意 - 我還沒有看過仔細地(或者注意以下注意事項)。
3)項目搜索路徑過期[XE]。只需要更新/修復。
4)缺少$定義XE5和其他人,儘管有一些其他的代碼是很清楚XE5
5)某些增強TRect東西,這不適用於XE的。 (這個數量相對較小,對於更多基本表達式來說是相對較小和相當微不足道的,因爲這些表達式可以在XE上編譯和使用,所以決不會停止。)
(Re 3,4 & 5 - 很遺憾,我收到了印象)
6)某種Application.OnIdle/GUI測試錯誤(運行T_TGUITestCase測試以查看它),GUI自動化測試將被阻止,除非您保留通過移動鼠標或按Shift鍵觸發Application.OnIdle事件(可在Windows 8 XE5和XE二進制文件中重複)來「餵食」Windows消息隊列。
現在說起我的頭頂,以及許多年前的模糊記憶,我似乎記得之前遇到過這種情況,而且這種情況在Delphi或Windows中有些微小的變化過去。 - IIRC過去,即使在系統中沒有其他事情發生時,即使您將「完成」設置爲「True」,實際上仍然會在Delphi應用程序中偶爾接受Application.OnIdle()調用, 。據我所知,由於幾年前Windows或Delphi發生了變化(不記得是哪一個),這一點有所改變,如果你不想讓你的設置成爲False,你必須更謹慎一些。應用程序完全入睡。無論如何,它顯然是今晚PC上的一個問題,與當前的(截至撰寫本文時)DUnit代碼一樣,所以我不得不補充它。
我這樣做可以說是一種相當低調的方式,例如,通過提供一個OnIdle處理程序來處理事件,同時運行GUI自動化測試來表明該應用程序實際上並未完成(例如「不要阻止,不要進入睡眠狀態」),然後立即恢復之前的任何處理程序。毫無疑問,這是一個更優雅的解決方案,也許通過向我們發佈一條消息讓應用程序保持「活躍」,但是我的第一次嘗試或更好的事情並沒有解決,我對此沒有興趣進一步。我有興趣聽到更好的解決方法。
這仍然不能編譯爲XE5,所以我已經應用了該補丁。有什麼理由不能在GitHub上更新它? –
爲了處理項目6,我在TRefGUITestRunner中添加了一個TApplicationEvents,代碼爲:「完成:=不是阻塞並分配(套件)和(TotalTestsCount> 0);」,現在它在這裏工作。 –
我已經提供了補丁,但沒有從SourceForge上的DUnit2團隊獲得任何反饋。於是我將DUnit2與完整的提交歷史記錄分離到我的Github帳戶中。我已經在那裏應用了許多修補程序,包括XE & XE3 +的編譯問題以及在沒有鼠標動作時暫停的腳本自我測試。我將繼續在我的Github帳戶上開發DUnit2 [https://github.com/graemeg/dunit2]。
- 1. 編譯器如何編譯編譯器?
- 2. 如何編譯
- 3. 如何用matlab編譯sdk編譯類?
- 4. 如何編譯和使用WINAVR編譯
- 5. 如何在C++中編譯編譯器?
- 6. 如何編譯ASP.NET中的預編譯
- 7. 如何編譯facelets?
- 8. 如何編譯bash?
- 9. 如何編譯aspx?
- 10. 如何編譯GnuTLS
- 11. 如何編譯dansguardian
- 12. 如何編譯HTML
- 13. 如何編譯SpeechMe
- 14. 如何編譯JavaBean?
- 15. 如何編譯LuaJ?
- 16. 如何編譯JNI_CreateJavaVM
- 17. 如何編譯angularjs
- 18. 如何編譯jnativehook?
- 19. 如何編譯eclipse?
- 20. 如何編譯HTML?
- 21. C編譯器如何計算如何編譯f(枚舉)?
- 22. JIT編譯器 - 如何開始編寫自己的編譯器?
- 23. 如何編寫自引導編譯器的編譯規則
- 24. 如何在(foo)時編譯器翻譯?
- 25. 編譯器如何知道何時不重新編譯?
- 26. 如何在C++中編譯glib - 在編譯時編譯錯誤.cpp
- 27. 如何編譯MEX文件
- 28. 如何編譯com.android.sdk包?
- 29. 如何用eclipse編譯PMD
- 30. 如何爲Windows編譯liboauth
[DCC錯誤] TestFramework.pas(1219):E2010不兼容的類型:'指針'和'整數' –
您希望我們如何處理編譯錯誤?你想讓我們在SO評論中調試它們嗎? –
大衛道歉:你說的對!我發佈了錯誤的通知,只是說當前版本的DUnit2不能在Delphi XE下編譯。再次道歉。 –