[英]How to integrate googletest to stm32 cmake project
我制作了我使用 STM32 cubeIDE 創建的項目,可使用 Cmake 進行編譯,但我在 googletest 集成方面遇到了問題。
整個項目的文件結構如下;
我將項目和測試文件夾創建為兩個不同的 cmake 項目。 我編譯項目沒有任何問題,但我無法在測試和項目之間建立健康的連接。 因為在編譯測試時我得到了一個錯誤。
測試中將Project相關的source和header文件添加到CmakeList.txt時,項目的變量和類型定義報錯。
我在測試文件目錄下使用的cmake命令如下;
$cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=<path_to_Project/cmake/gcc-arm-none-eabi.cmake> -S<path_to_Test> -B<path_to_Test/build/Debug> -G Ninja
$cmake --build <path_to_Test/build/Debug> -j 8
錯誤;
您對將 googletest 集成到現有的 cmake 項目有什么建議嗎?
除非您計划在目標設備 (MCU) 上運行單元測試,否則您不能也不應該包含任何特定於微控制器的代碼,例如 HAL。
以下是對嵌入式項目進行單元測試的一些方法:
並非每一段代碼都應該進行單元測試,做更多的研究以更好地了解不同的測試類型。
更新
所以目標是在目標上運行測試。 在那種情況下,我會建議選擇不同的測試框架,因為 gtest 可能太大而無法安裝在 MCU 上,即使您可以以某種方式編譯它。
我知道有人為此目的使用了 cmocka 。 流程將是這樣的:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.