簡體   English   中英

嵌入式Python單元測試

[英]unit testing embedded python

我有一個第三方軟件,該軟件能夠使用以下方式運行一些python腳本:

software.exe -script pythonscript.py

我的公司嚴重依賴此軟件以及我們為其開發的腳本。 當前,我們有一些QA檢查腳本的輸出,但是我們確實希望開始對腳本進行單元測試,以使查找錯誤和使測試系統更完整變得更加容易。

我的問題是如何運行“嵌入式”單元測試? 我們使用pydev + eclipse,我嘗試使用它的遠程調試功能使其可以與單元測試一起使用,但是我不能真正使其工作。 如何使服務器連接“供稿”單元測試?

另一個想法是解析軟件的標准配置,但這並不是真正的單元測試……而且似乎帶來的額外復雜性使這種方法變得不太有趣。

我希望類似的事情已經在其他地方完成,因此我嘗試使用谷歌搜索,但是也許我只是沒有使用正確的關鍵字。 誰能給我一個起點?

謝謝

多一點信息會有所幫助。 您是否正在使用測試框架(例如unittest或鼻子),如果沒有,測試的結構如何? 什么是software.exe

在python中,單元測試實際上僅是一個函數集合,這些函數會在失敗時引發異常,因此可以像其他任何函數一樣從腳本中調用它們。 因此,從理論上講,您可以簡單地創建一個測試運行器(如果您尚未使用過鼻子),然后將其作為software.exe -script runtests.py運行。 在pydev中,您可以將software.exe設置為自定義的python解釋器。

如果問題在於software.exe隱藏了stdout,則只需將結果寫入日志文件即可。 您還可以創建一個環境來模擬software.exe提供的環境,並使用python.exe運行測試。

如果單元測試是針對您的代碼的,而不是針對software.exe提供的功能的,則可以在必要時使用獨立的python模擬software.exe部件來運行測試。 作為一個中間步驟,你可以嘗試運行unittest使用`software.exe”基於腳本

好吧,通常來說,測試軟件應該由持續集成套件完成(而Jenkins是您的朋友)。

現在,我認為您必須通過在python腳本中設置一個test()函數來測試腳本pythonscript.py ,該函數將模擬可能提供給腳本入口點的環境。 而且,您將能夠使用unittest執行所有腳本的測試功能。 您也可以將測試嵌入到doctests中,但是我個人不喜歡這樣。

然后,在您的software.exe ,您可以通過模擬所有環境組合來執行測試。 但是,由於您對software.exe發言不多,因此我將無法為您提供更多幫助...(哪種語言? software.exe已進行了單元測試?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM