我打算在我的项目中将cpputest用作测试框架,我需要对其进行交叉编译,因为它将在ARM平台上使用。我用于ARM开发的编译器是arm-gcc,它在禁用pthreads的情况下构建。因此,我需要在没有pthreads的情况下构建cpputest。目前,我正在遵循自动工具方法来构建cpputest。任何帮助将不胜感激。
答案 0 :(得分:0)
您是否要在目标设备上编译,下载和运行CppUTest?
通常,不会编译CppUTest并将其下载到目标设备,而是将其构建为Windows(或Linux)控制台应用程序。这意味着CppUTest是使用本机编译器(Visual Studio或GCC)进行编译的,但是您的固件也需要使用相同的本机编译器(Visual Studio或GCC)进行编译。
单元测试旨在验证您的代码逻辑是否正确,这意味着代码是在ARM处理器上还是在Intel处理器上执行都无关紧要。记录下来,当我第一次开始进行单元测试时,这让我大吃一惊。
但是硬件寄存器和类似的东西呢?嗯,有一些方法可以在Windows环境中测试嵌入式设备的硬件。在一天结束时,您仍然需要将固件下载到嵌入式设备上,并验证端口映射是否正确(例如,您已正确设置了GPIO端口以打开LED)。 / p>
在开发PC上而不是在目标PC上运行单元测试有很多优点。您的开发PC速度更快,拥有更多的资源(即存储和RAM),并且每当您将代码签入版本控制系统时,它都可以轻松地在连续集成环境(如Jenkins或TeamCity)中运行。
我强烈推荐Test-Driven Development for Embedded C by James W. Grenning这本书,以获取更多信息。它会回答您有关嵌入式设备上的单元测试的所有问题。 CppUTest可用于C以及C ++项目。