3

我正在开发一个开发和目标环境完全不同的项目。目标环境有不同的外围设备、IO 卡等,我的项目经常使用这些外围设备。而我的开发环境缺少这些外围设备。因此,我的开发箱上的单元测试大部分时间都是无用的。

我正在使用 Eclipse CDT 和远程调试插件,并且正在通过网络进行调试,我想更好地利用单元测试,并且基于上述事实,我想知道我最好的选择是什么。到目前为止,我一直在为我添加的每个新功能编写测试程序,并通过远程调试对其进行测试,这似乎是一种低效的测试方式,因为编写测试和执行测试需要大量时间。

有什么建议么?

4

1 回答 1

1

在这种环境下,如果没有昂贵的工具是很难做到的。我认为最好的解决方案是像您一样编写测试程序,但是将它们全部组合成一个程序,您可以启动一次并让它运行所有测试而无需人工干预。我为此使用了Boost Test 库

真正的关键是弄清楚如何编写测试,以便它们可以自检。您不希望您的测试代码执行需要您手动验证结果的操作。这可能意味着要在其他地方运行第二个程序,该程序监视目标环境外围设备的输出,并在它与测试代码应该发送的内容不匹配时抱怨。测试毕竟是为了验证正确性,而不仅仅是证明某些东西不会崩溃。

当然,测试也需要聪明地编写。如果您正在设计通信协议和网络驱动程序,您可能需要远程测试代码来确认从网络端口发送的正确字节,但您不需要它来测试您的通信协议。测试代码可以创建一个虚拟网络设备并在其上运行协议测试(甚至可以在您的开发环境中运行),因此您应该能够在开发环境中本地测试除硬件驱动程序之外的所有内容。

于 2012-05-17T05:37:51.050 回答