首页 > 解决方案 > 有没有办法在禁用 pthreads 的情况下构建 cpputest?

问题描述

我打算在我的项目中使用 cpputest 作为测试框架,我需要交叉编译,因为它将在 ARM 平台上使用。我用于 ARM 开发的编译器是 arm-gcc,它是在禁用 pthreads 的情况下构建的。因此,我需要在没有 pthread 的情况下构建 cpputest。目前我正在遵循构建cpputest的自动工具方法。任何帮助将非常感激。

标签: unit-testinggccarmcpputesteabi

解决方案


您是否尝试在目标设备上编译、下载和运行 CppUTest?

通常,CppUTest 不会编译并下载到您的目标设备,而是构建为 Windows(或 Linux)控制台应用程序。这意味着 CppUTest 使用本机编译器(Visual Studio 或 GCC)进行编译,但您的固件也需要使用相同的本机编译器(Visual Studio 或 GCC)进行编译。

单元测试旨在验证您的代码逻辑是否正确,这意味着代码是在 ARM 处理器还是在 Intel 处理器上执行并不重要。作为记录,当我第一次开始进行单元测试时,这让我大吃一惊。

但是硬件寄存器和类似的东西呢?好吧,有一些方法可以在 Windows 环境中测试嵌入式设备硬件。归根结底,您仍然需要将固件下载到嵌入式设备并验证您的端口映射是否正确(例如,您是否正确设置了 GPIO 端口以打开 LED)。

在开发 PC 上而不是在目标上运行单元测试有几个优点。您的开发 PC 速度更快,拥有更多资源(即存储和 RAM),并且当您将代码签入版本控制系统时,它还可以轻松地在持续集成环境(如 Jenkins 或 TeamCity)中运行。

我强烈推荐James W. Grenning 所著的 Test-Driven Development for Embedded C一书以获取更多信息。它将回答您在嵌入式设备上进行单元测试的所有问题。CppUTest 可用于 C 和 C++ 项目。


推荐阅读