最近我的任務是用C#編寫和運行桌面應用程序的單元測試。過去,我主要編寫了自動化的功能/ GUI測試。這些可以在專用QA機器上運行,因爲這些測試可能導致崩潰,數據丟失,藍屏死機等。是否應該爲運行單元測試進行類似的設置?在本地機器上運行單元測試是否有風險?單元測試應該在本地機器上運行嗎?
1
A
回答
10
單元測試應該在您的本地機器和在構建服務器上運行。作爲開發者的反饋,它們是非常寶貴的資源。 DEV應該寫單元測試。在檢查之前,他應該運行單元測試以確保他不會破壞任何東西。構建服務器然後將再次運行單元測試,以確保它沒有真正的破壞,並且與其他代碼的集成(如果有的話)成功。
當單元測試運行時,最好構建服務器應該運行集成測試和自動UI測試。當這些過程完成後,已經生成了一個沒有已知缺陷的構建 - 至少沒有任何測試覆蓋。換句話說,綠色構建意味着軟件集成進展順利,開發人員可以在實際發佈軟件之前繼續檢查 - 或者在某個時刻開始進行手動測試。
軟件測試必殺技發生在足夠多的測試已經自動化之後,這樣開發人員和企業就可以安心地發佈基於這個自動化測試流的成功產品。實際上,只有少數產品會成熟 - 並且需要進行一些手動測試。
單元測試不接觸外部系統或接口。因此,在本地運行它們沒有風險。
1
單元測試通常由開發人員在開發時完成。所以在開發環境中運行它。可能是你的本地機器。
3
單元測試應該是非常獨立的,以便它們可以在每臺機器上運行,而無需進一步設置。按定義進行單元測試只測試非常細粒度級的功能單元而不觸及外部系統(即數據庫,文件系統等)
1
好,如果您的本地計算機是開發機器我認爲沒有風險,因爲機器不是生產最終用戶機器。您也可以考慮TFS實驗室管理(如果您有Microsoft TFS作爲ALM /源代碼管理系統)。在這種情況下,您可以創建虛擬或物理測試環境,並在這些定義的環境中部署和測試應用程序。
不確定類似測試產品的名稱是否適用於非TFS場景。
相關問題
- 1. 在本地機器上運行並行測試
- 2. 我可以在構建機器上運行C#內置單元測試嗎?
- 3. 單元測試應該知道NHibernate嗎?
- 4. 在Jenkins(Gradle)上運行Android單元測試和儀器測試
- 5. Selenium測試在本地機器上運行,但不是通過jenkins運行
- 6. Flutter - 在Windows上運行單元測試
- 7. 在LSF上運行python單元測試
- 8. Jenkins在NodeJS上運行單元測試
- 9. 使用ReSharper測試運行器來運行MSTest單元測試
- 10. 可以在遠程機器上運行本地腳本嗎?
- 11. 單元測試應該覆蓋壓力測試嗎?
- 12. 在本地計算機上運行asp.NET應用程序以進行測試
- 13. 在本地主機上運行時測試可確認(設計)
- 14. 從命令行運行本機VS2012/C++ 64位單元測試
- 15. 在本地機器上運行PHP?
- 16. 本地機器上的網頁測試
- 17. QA團隊應該進行單元測試嗎?
- 18. 本地單元測試Android
- 19. 我是否應該針對SQLRepository運行單元測試?
- 20. ReSharper單元測試運行器 - TestCase
- 21. NodeJS和MAMP在本地機器上運行。可能嗎?
- 22. 在運行測試/單元測試時運行rspec
- 23. 與Jenkins在無頭機器上進行Android單元測試
- 24. 如何強制在Gradle Android版本上運行單元測試?
- 25. 單元測試未運行
- 26. Phabricator:運行單元測試
- 27. MSBuild運行單元測試
- 28. SuperNotCalledException運行單元測試
- 29. 應該是什麼在單元測試
- 30. 在可可單元測試目標中運行測試之前運行腳本