使用 ESP-IDF 进行单元测试

glg*_*lgl 9 embedded unit-testing esp32

目前,我正在使用 ESP-IDF 并尝试进行单元测试。

我已经找到了https://esp-idf.readthedocs.io/en/latest/api-guides/unit-tests.html,但有一点我不明白。

但首先,让我解释一下我的设置:

  • 我在 Windows 下工作并且有一个 MSYS32 shell。
  • IDF_PATH指向 ~/esp-idf,我的 esp-idf 套件所在的位置。
  • 但是,我的项目位于 ~/project_dir/subdir 中。他们按其应有的方式工作。

如果我遵循单元测试指南中的说明,我可以构建系统中内置的测试用例。但它没有找到我的应用程序的单元测试。这很清楚,因为他们完全坐在别的地方。

我现在该怎么办?最好不要过多篡改默认的单元测试应用程序?

我可以看到几种方法,但我不知道添加自己的组件的预期方法是什么。他们的测试用例进入上述应用程序:

  • 我应该将项目路径添加到单元测试应用程序中吗?
  • 我应该复制单元测试应用程序并将其添加到我的项目中吗?
  • 我应该在我的项目中创建一个文件夹并添加一个指向单元测试应用程序的链接吗?

det*_*tly 7

ESP-IDF 单元测试设置实际上是为测试它自己的内部组件而设计的,并帮助任何人添加这些组件。

要单独对您自己的项目进行单元测试,请查看此示例项目,该项目展示了如何在适当的项目旁边创建 Unity 单元测试应用程序。请注意,项目本身被调用unit_test,因此测试应用程序是unit_test_test. 该组件称为testable。(我标记它是因为它让我感到困惑;解释unit_test就像你可能会阅读example_appmyproject。)

否则,这篇 ESP 论坛帖子还提供了一种将您的组件包含在其单元测试应用程序中的方法:

make -C ${IDF_PATH}/tools/unit-test-app EXTRA_COMPONENT_DIRS=/path/to/my_proj/components TEST_COMPONENTS=mycomponent
Run Code Online (Sandbox Code Playgroud)