2010-11-08 81 views
2

我正在爲使用Python編寫的工具編寫端到端測試。該工具讀取一個文件作爲輸入。我想測試它的退出代碼和它的輸出。用於測試輸入文件及其輸出的Python測試「框架」

這是一個相當常見的習語,我已經看到它在幾個方面完成。在PHP項目中,每個測試都是一個文件,並具有如下行:INPUT:,0123',EXPECTED_REGEX:等。在我自己的phc項目中,每個文件都是普通的源文件,但在頂部添加了一個註釋,其中包含關鍵字如EXPECTED。我想我已經複製了gcc,它使用了一個用tcl編寫的更復雜的工具。

是否有框架,庫等,在Python中這樣做?它應該:

  • 讀取源文件
  • 解析特殊的關鍵字(或類似),對應於預期的輸出,退出代碼,字/正則表達式它希望找到或找不到,
  • 檢查輸出正確。

儘管從理論上看似乎並不難,但在實施之前我還記得很多邊緣案例(尤其包括轉義),而不是重新發明輪子。

回答

3

機器人框架可能會有幫助。它是一個用python實現的關鍵字驅動的功能測試工具,可以用pythion或java擴展。

看到:http://robotframework.googlecode.com/svn/tags/robotframework-2.5.4/doc/userguide/RobotFrameworkUserGuide.html

有許多建在圖書館,你可能能夠應用解決您的問題,其中包括一個OperatingSystem的庫與文件等和字符串庫處理字符串的工作:

http://robotframework.googlecode.com/svn/tags/robotframework-2.5.4/doc/userguide/RobotFrameworkUserGuide.html#standard-libraries

+0

這看起來像我在找什麼。 – 2010-11-08 16:07:52

0

由於文件IO的實現是依賴於系統的,爲什麼不模擬出文件讀出和使用書寫StringIO的:

http://docs.python.org/library/stringio.html

,然後測試該散裝的邏輯(從文件中讀取,做一些東西,寫入一個文件)在Python中?

,那麼,也許你可以有一端由具有單獨的Python文件叫出使用commands模塊或類似的腳本來結束對基本的完整性測試,讓你在呼喚它作爲另一個進程:

http://docs.python.org/library/commands.html

使用它你可以得到輸出和狀態。

+0

從你的回答來看,我相信我可能錯誤地提出了這個問題。我重寫了大部分內容,希望現在更清楚。 – 2010-11-08 16:07:04

+0

哦,我現在看到,看起來好像馬克有你的答案:) – 2010-11-08 20:34:59