C++远程单元测试

C++ Remote Unit Testing

本文关键字:单元测试 C++      更新时间:2023-10-16

我正在从事一个开发和目标环境完全不同的项目。目标环境有不同的外围设备,IO卡等,我的项目经常使用这些外围设备。而我的开发环境缺少这些外围设备。因此,在我的开发盒上进行单元测试在大多数情况下是无用的。

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

有什么建议吗?

在这种环境中,如果没有昂贵的工具,这是相当困难的。 我认为最好的解决方案是像你所做的那样编写测试程序,但将它们全部组合成一个程序,你可以启动一次,让它运行所有测试,而无需手动干预。 为此,我使用升压测试库。

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

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