最近我轉職去寫純 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 上,歡迎取用。