2009-04-13 60 views
5

有沒有人看到過,試圖實現,或以其他方式在shell中使用TAP?我們正在尋找跨多種語言創建單元測試(不要讓我開始討論爲什麼到目前爲止還不存在),並且由於我們有很多Perl代碼,我們將在TAP(其中包括I想像)。我發現了一個用於C,Perl的TAP庫,當然,它內置了,我甚至找到了Java的API。但是缺少一個區域是shell腳本測試。在Shell腳本中測試任何協議

不是我在單元測試shell腳本中找到了很多東西,但是既然我們有成千上萬行的shell代碼,那麼能夠以某種方式測試它會很好。

回答

9

請參閱TAP Producers列表以獲取庫的列表。在該列表中,您將找到用於shell代碼的Tap-functions

+1

我希望能在Bourne Shell運行的東西,不僅僅是Bourne Again Shell,但它總比沒有好! – Tanktalus 2009-04-14 21:34:00

3

我通常爲我的shell腳本編寫我自己的小測試框架。有些事情要記住這樣做時:

  • 使用文件時,相對於一些變量,你可以在你的測試修改所有路徑。
  • diff(1)是偉大的驗證測試結果(和顯示有用的錯誤信息給用戶),這就是說
  • 使用局部變量廣泛
  • 一切都必須在功能

,我的「測試框架「主要是一組shell函數(名字爲test*)和一個叫做他們的函數。沒什麼特別的,真的。測試會爲測試創建一個工作目錄,將所有必需的文件複製到該目錄中,運行一個函數,並根據一組好的文件驗證結果。

3
  • Bats是簡單的Bash只測試框架,測試可以寫在一個非常明確的語法。
  • shUnit是最老的shell測試框架,很少有文檔。
  • shUnit2是最近由shUnit啓發的項目,但完全不同。測試可以用更多xUnit的方式編寫。最重要的是,它是POSIX兼容的。