2014年1月3日 星期五

純 C 的 unit testing framework - CUnit

最近我轉職去寫純 C 的程式,太多年沒接觸 C  了,好多 C  語言奇器淫巧都不熟悉,有種時光倒流回到10年前當菜鳥工程師的感覺。雖然工具不熟,但是寫程式的好習慣還沒忘記,我一開工就立刻找找有什麼純 C 的 unit testing framework  可以使用。

我找到了個 CUnit。CUnit  文件相當精要,掃過一遍之後就知道它合用了。真正用起來果然也容易上手。唯一碰到的小討厭就是和 Jenkins CI  整合的問題 - 廣大的 JUnit / NUnit  / 甚至是 JsUnit 用戶都有專屬 plugin  分析 unit test 產生的 XML 測試結果,可以直接在  Jenkins  上面看到哪些 test case 失敗以及測試歷史紀錄,但是CUnit 太小眾了,當然沒有人為他寫 Jenkins plugin。

好險我找到了個好東西 - xUnit plugin,他可以把很多稀奇古怪 unit test framework (例如:AUnit / UnitTest++ / boost test / pascal unit ...)產生的 XML
測試文件轉成最常用支援最多的 JUnit 格式,再由,再由 JUnit plugin 去分析統計結果!雖然 CUnit  太小眾了,讓 xUnit  不知如何轉換(靠!有比 Pascal  Unit 小眾嗎?),但是 xUnit 可以讓使用者自訂 xml style sheet  來轉換 XML,哈,那擴充支援 CUnit 就是小菜一疊而已了。

我寫好的 CUnit -> JUnit xml style sheet 在  GitHub 上,歡迎取用。