之前實現的c語言項目單元測試框架cutest, 功能更新, 已上傳至ubuntu ppa倉庫, 方便安裝使用, 文末附帶視頻說明. ...
正片開始
在之前的文章中, 介紹瞭如何實現一個類似gtest的單元測試框架, 完整的項目代碼可以參考這裡: https://github.com/kfggww/cutest . 近期對cutest的實現做了一些修改, 包括:
- Test Suite的聲明巨集, 修改為TEST_SUITE
- 增加Test Suite的聲明巨集TEST_SUITE_WITH. 可傳遞Suite的init和cleanup函數, 在Suite中每個Case運行之前和之後分別被調用, 用於公共資源的初始化和回收.
- Test Case的定義巨集, 修改為TEST_CASE
- 增加Test Suite和Test Case的過濾功能. 通過命令行參數, 過濾出要運行哪些測試
- 優化測試報告輸出
- 增加json格式的測試結果輸出
- 移除各種ASSERT
- 修改Test Case返回測試結果的方式. Case中需返回TEST_PASS/TEST_FAIL/TEST_IGNORE, 標記測試結果
- 上傳至Ubuntu PPA, 方便安裝使用
對於Test Suite以及Test Case如何註冊到cutest之中, 實現原理還是使用"constructor"屬性函數, TEST_SUITE/TEST_CASE巨集會拼接出函數實現, 在程式運行時, 在main函數調用之前, 這些"constructor"函數被調用, 完成Suite以及Case的註冊. 具體實現可參考代碼片段, 或者上一篇文章中的介紹.
詳細信息看下麵的視頻吧:
結尾彩蛋
更多linux平臺技術研究和討論, 可以進入我的qq群: 838923389
本文來自博客園,作者:kfggww,轉載請註明原文鏈接:https://www.cnblogs.com/kfggww/p/17643674.html