【问题标题】:Unit testing for embedded C development [closed]嵌入式 C 开发的单元测试 [关闭]
【发布时间】:2013-06-17 11:32:23
【问题描述】:

愚蠢的问题:您使用什么单元测试框架进行嵌入式开发? 有一个关于 C 的单元测试框架的问题,但它很旧,而且不是面向嵌入式的。

【问题讨论】:

  • 您不能在测试中使用 C++(和现代 C++ 单元测试框架)吗?您的生产代码仍将是 C,但测试将使用 C++。
  • Embedded 是一个非常广泛的概念:C on 2KB ATtiny 是嵌入式开发。具有 1GB RAM 和 1GB 闪存的 Cortex A9 上的 C 仍然是嵌入式开发。您应该告诉我们您的目标处理器和 RAM 是什么。
  • AVRs 至少 (ATMega256RFR2),以后是另一个平台。
  • 好的。更新了我的答案。
  • Thiselectronics.stackexchange.com 上的问题和答案有一些可能相关的进一步信息。

标签: c unit-testing embedded


【解决方案1】:

如果我只回答您问题的这一部分:您使用什么单元测试框架进行嵌入式开发?,那么我将回答 Google Test。它需要与 C++ 兼容的编译器,但适用于测试 C 代码。

我们将它用于所有嵌入式开发:TI C67x DSP(生产代码为 100% C,我们仅将 C++ 用于 gtest)、x86 上的 VxWorks 和 ARM 上的 Linux。

编辑:您在 cmets 中写道,您的平台是 ATMega。我认为gtest 不适合 8 位 MCU,即使是大的。您可能有两种解决方案:

  • 如果您有大量独立于 MCU 硬件本身的代码,您可以尝试在计算机上测试此代码,模拟(即模拟)与硬件相关的部分。此解决方案只会进行单元测试(而不是集成测试),要求您的代码在与硬件紧密相关的内容和不相关的内容之间有明确的界限......
  • 尝试专门为 MCU 设计的测试框架。 µCUnit 文档似乎很清楚,我从未尝试过...可能值得一试。

【讨论】:

  • 是的,它是相关的,但它是旧的 - 一些收费看起来处于非活动状态,或者相反仍然不稳定。
  • 你说得对,已经很老了。
【解决方案2】:

试试这个 - MinUnit -- a minimal unit testing framework for C

简单,但很少

【讨论】:

    猜你喜欢
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 2011-02-18
    • 2011-01-03
    • 1970-01-01
    • 2022-08-24
    • 2020-05-06
    相关资源
    最近更新 更多