嵌入式C ++系统中的持续集成/单元测试

时间:2011-05-05 21:32:51

标签: unit-testing embedded continuous-integration embedded-linux

通常使用哪些工具进行单元测试,尤其是嵌入式系统的持续集成?

我特别认为您通常需要交叉编译和部署,并且您无法轻松地将目标平台可视化。此外,运行测试代码和框架也很困难。

我能用什么来减轻这些困难?

(我认为它应该是某种双重目标,其中构建服务器在更容易的目标上运行其测试)

5 个答案:

答案 0 :(得分:7)

对于单元测试,请查看Unity。 http://sourceforge.net/apps/trac/unity/wiki 它是Ruby脚本支持的非常轻量级的测试工具(2 x .h和1 x .c文件)。我们一直在嵌入式ARM7目标系统中进行单元测试(通过串口重定向测试报告)。 它也得到CMock的支持(惊喜,惊喜)Mocking。即使不是很广泛,关于这些的好处是它们易于使用。 关于CI,如果你是基于Linux的话,Hudson非常好。 另请参阅CppUTest并查看James Grenning的书籍“{C} for Embedded C”http://renaissancesoftware.net/

答案 1 :(得分:6)

在工作中我使用embUnit框架:

http://embunit.sourceforge.net/embunit/index.html

关于这个框架的好处是,它是精益的。它不需要任何外部库(甚至不是libc)。您可以轻松地挂接自己的输出函数,因此如果您在与外部世界的唯一连接是jtag或UART的系统上工作,那么embUnit仍然可以工作。

答案 2 :(得分:4)

我已使用RCUNITCANTATA++对PC上的嵌入式代码进行单元测试。任何Nunit都应该轻松集成到任何连续的测试平台中。我们发现在PC上模拟硬件并在最终集成期间仅测试目标就容易得多。

硬件接口抽象对于在PC上对嵌入式代码进行单元测试至关重要。这适用于持续集成,因为它只在模拟硬件访问的PC上运行。只需稍加努力,我们就可以在PC上测试95%的代码,以便继续集成。

您还可以查看以下问题:

答案 3 :(得分:0)

我见过在系统上使用的C(pp)单位,可让你通过JTAG启动目标。

帮助控制台通信等排序。

但它可以奏效。

答案 4 :(得分:0)

我正在开发一个开源tool,这是一个最小的测试,或者可以在调试器运行时提供详细信息。