我想在我的IAR项目中使用测试框架。处理器是STM32L0。
我尝试了什么:
https://github.com/cpputest/cpputest跟随the ::: https://cpputest.github.io/stories.html 没有用,因为只有64K Flash& 8K RAM
这个框架还不够
https://github.com/ThrowTheSwitch/Unity.git我试图进入IAR Embedded工作台但是有很多编译器错误也没有足够的空间,所以我尝试在桌面上运行它。这不起作用,因为它在代码中有太多的硬件依赖项。
接下来,我尝试通过在设备启动时设置一个测试例程来进行“伪”单元测试,该例程可以通过预编译器指令打开和关闭。
喜欢这样(未完成):
#if PREFORM_TESTS
TEST_run();
#endif
然后使用文件:
#include "testAll.h"
#include "testEvent.h"
#include "stm32l0xx_hal.h"
void TEST_run(){
TEST_EVENT_run();
}
void assert_failed(uint8_t* file, uint32_t line){
while(1);
}
#include "testEvent.h"
#include "testAll.h"
#include "event.h"
#include "stm32l0xx_hal.h"
void test_add_event();
void TEST_EVENT_run(){
test_add_event();
}
void test_add_event(){
ASSERT(1);
}
如何在STM32L0x3上运行单元测试?
答案 0 :(得分:1)
通常对于嵌入式目标,代码'模块'在您的桌面目标上编译。因此,您可以将模块引入测试并存根/模拟硬件特定的模块。
如果没有足够的空间在设备上放置测试框架,那么也许你不应该(或找到更小的一个)。然后,您必须在没有测试框架的情况下在应用程序代码中编写测试,就像编写正常的应用程序代码一样。