對於我的下一個嵌入式系統項目,我希望採用單元測試。它在技術上可能不是測試驅動開發,但我至少希望事先對單元測試進行測試,並進行全面的單元測試。單元測試使用RTOS的項目
我正在使用IAR EWARM工具鏈。我正在考慮使用cmocka,unity或cunit。我正在學習使用μC/ OS-III作爲RTOS。
下面是問題:單元測試如何與圖片中的RTOS一起工作? E.G:我應該禁用內核和單元作爲單線程應用程序來測試代碼,並存儲所有/大部分內核調用,還是有更好的方法?
示例: 在μC/ OS-III中,入口點仍然是主要的。從main調用任何init代碼,然後調用OSStart()開始多任務處理。所以,當我運行測試工具我也只是不再撥打電話到OSStart()
#ifdef UNIT_TEST
test_runner();
#else
OSStart(&err);
#endif
然後在所有的我只需要模擬消息傳遞和延遲的任務我的應用程序代碼調用內核。
這是做到這一點的最佳方式。或者我會更適合啓動內核,爲我的測試運行器創建一個任務,並將所有任務作爲單個線程運行,或者還有其他一些好的方法,包括從測試工具中產生其他任務。
這裏沒有誤解。我的測試運行者需要控制並能夠訪問和調用所有要孤立運行的功能。我不介意扼殺和嘲笑操作系統調用,但嘲笑需要額外的時間來設置。因此,問題是,我完全繞過並忽略了內核,還是應該稍微初始化它並創建一個測試運行器任務,以調用我的應用程序代碼 - 我能否以這種方式避免一些嘲諷。或者正在嘗試比它值得更多的麻煩。我一直在裸機系統上進行一些單元測試,這非常簡單。 – Nick
我從你的回答中假設我需要用我的初始本能去存取所有內核調用,並且永遠不啓動RTOS。否則會吠叫錯誤的樹。 – Nick