gpt4 book ai didi

c - 如何在 Eclipse 中为托管的 ARM C 项目添加单元测试?

转载 作者:行者123 更新时间:2023-12-01 03:25:43 25 4
gpt4 key购买 nike

我有一个托管的 Eclipse 项目,它使用 GNU ARM Embedded Toolchain 为 ST 微 Controller 进行编译。我现在要做的是,对该项目中的代码进行单元测试。我想用于单元测试的框架是 Google Test。

我尝试为单元测试创​​建第二个 Eclipse 项目,它使用标准的 GNU 工具链。像这样:

项目 1 (ARM)
|---src

项目 2(桌面)
|---测试

问题是双重的:

  • 第二个项目无权访问第一个项目的源代码(显然)。因此,我尝试从第一个项目创建一个静态库用于测试目的,这导致了第二个问题。
  • 从第一个项目创建的库与第二个项目不兼容,因为它使用 GNU ARM 嵌入式工具链而不是标准 GNU 工具链。

  • 为了解决第二个问题,我在第一个项目中添加了构建配置,以尝试使用正确的工具链对其进行编译。但这并没有成功。

    我走的另一条路是在与实际代码相同的项目中进行单元测试,并使用构建配置来创建用于单元测试的可执行文件。像这样的东西:

    项目
    |---src
    |---测试

    这也没有奏效,无论如何,这似乎与第一种方法存在相同的问题。

    问题不在于单元测试本身。我知道如何使用 Google Test 在 Eclipse 中测试常规 C 项目。

    Eclipse 中的托管项目通常如何对嵌入式项目进行单元测试?有可能吗?如果是这样,这是一个好方法还是我应该编写自己的makefile来完成这项任务?

    最佳答案

    为此,使用 eclipse 自动生成的 makefile,您必须为每个构建创建一个构建配置(一个用于目标,一个用于桌面),相应地:

  • Project1,必须构建为两个平台的静态库。它将以独立于平台的方式包含您的应用程序。
  • Project2 必须只为桌面构建,它将有测试和测试主要,也将链接到 Project1 库。
  • 必须创建一个 Project3(具有主要和平台相关代码)并构建一个 elf 或 bin,链接到目标平台的 Project1 库。

  • 如果您决定在目标平台上运行测试,它可能会变得更加复杂;

    我有两个示例/模板可供您引用,但它们与 Eclipse 无关:
  • 使用带有 msp430 工具链的 Makefiles 构建,CppUTest 作为测试框架。
    https://github.com/felipe-lavratti/UnitTestingEmbeddedC-Demo1
  • 使用 Scons 构建,测试在平台、依赖项和 CppUTest 作为单元测试框架中运行。
    https://github.com/felipe-lavratti/UnitTestYoutubeVideos
  • 关于c - 如何在 Eclipse 中为托管的 ARM C 项目添加单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41808176/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com