【问题标题】:Unit testing with ESP-IDF使用 ESP-IDF 进行单元测试
【发布时间】:2018-12-13 01:53:01
【问题描述】:

目前,我正在使用 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。他们按自己的方式工作。

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

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

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

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

【问题讨论】:

  • 我看不出这个问题“太宽泛”了。它是关于一个具体的框架及其运行单元测试的能力以及如何将自己的测试用例包含到单元测试应用程序中。文档中有一个很小的差距
  • 我为相同的文档而苦苦挣扎。在我看来,它的目标是运行 esp-idf 自己的单元测试,而不是使用 esp-idf 构建应用程序的用户。我认为一个带有一些工作测试的例子会很棒。我会回来添加一个链接,以防我觉得有用。
  • @mark 太好了,谢谢。我认为它也应该针对构建组件的用户。因此我的问题。
  • 我收到了reply to my forum question,似乎他们已经通过示例项目解决了这个问题,但尚未更新文档。
  • @detly 太棒了!我一回来工作就会检查这个(不确定今年是否还会发生这种情况,但肯定在一月份!)

标签: unit-testing embedded esp32


【解决方案1】:

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

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

如果做不到这一点,this ESP forum post 还提供了一种将您的组件包含在他们的单元测试应用程序中的方法:

make -C ${IDF_PATH}/tools/unit-test-app EXTRA_COMPONENT_DIRS=/path/to/my_proj/components TEST_COMPONENTS=mycomponent

【讨论】:

    猜你喜欢
    • 2021-05-25
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2023-03-11
    • 2011-11-16
    • 2015-05-28
    • 2012-05-23
    • 2010-11-30
    相关资源
    最近更新 更多