[英]unit-test for c - how to test a 'unit' without recompiling/relinking?
[英]How to run a Unit-Test for ESP32 without flashing it?
从其他语言和平台了解到,我们希望在代码闪存到硬件之前的构建过程中使用单元测试。 这对于不需要 ESP32 硬件的简单功能测试应该是可能的。
但据我们所知,C++ 代码是为 ESP32 芯片编译(和链接)的,不应在开发系统或 CI/CD 管道中运行。
有没有办法在另一个系统上模拟 ESP32(用于 C++)或以任何其他方式运行单元测试?
注意:我们正在使用“platformio”进行构建。
使用qemu_esp32模拟器可以做到这一点。 您可以编译您的测试运行器并直接在模拟器上运行它,而不是将它烧写到真正的 esp32 芯片上。
以下是如何执行此操作的示例(改编自esp32_qemu_unity_test_action ):
idf.py build
cd build
esptool.py --chip esp32 merge_bin --fill-flash-size 4MB -o flash_image.bin @flash_args
/opt/qemu/bin/qemu-system-xtensa -nographic -no-reboot -machine esp32 -drive file=flash_image.bin,if=mtd,format=raw -serial file:output.log
通过指定-no-reboot
,模拟器将简单地退出而不是重新启动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.