C++远程单元测试
C++ Remote Unit Testing
我正在从事一个开发和目标环境完全不同的项目。目标环境有不同的外围设备,IO卡等,我的项目经常使用这些外围设备。而我的开发环境缺少这些外围设备。因此,在我的开发盒上进行单元测试在大多数情况下是无用的。
我正在使用 Eclipse CDT 和远程调试插件,并且正在通过网络进行调试,我想更好地利用单元测试,基于上述事实,我想知道我的最佳选择是什么。到目前为止,我一直在为我添加的每个新功能编写测试程序,并通过远程调试对其进行测试,这似乎是一种低效的测试方式,因为编写测试和执行测试需要大量时间。
有什么建议吗?
在这种环境中,如果没有昂贵的工具,这是相当困难的。 我认为最好的解决方案是像你所做的那样编写测试程序,但将它们全部组合成一个程序,你可以启动一次,让它运行所有测试,而无需手动干预。 为此,我使用升压测试库。
真正的关键是弄清楚如何编写测试,以便它们可以自我检查。 您不希望测试代码执行需要手动验证结果的操作。 这可能意味着在其他地方运行第二个程序,该程序监视目标环境外围设备的输出,如果它与测试代码应该发送的内容不匹配,则进行投诉。 毕竟,测试是为了验证正确性,而不仅仅是证明某些东西不会崩溃。
当然,测试也需要智能地编写。 如果要设计通信协议和网络驱动程序,则可能需要远程测试代码来确认从网络端口发送的正确字节,但不需要此代码来测试通信协议。 测试代码可以创建虚拟网络设备并在其上运行协议测试(甚至可以在开发环境中运行(,因此你应该能够在开发环境中本地测试除硬件驱动程序之外的所有内容。
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- MS 本机单元测试 - 断言::线程失败不起作用
- 如何获取 CMake 单元测试的相对路径?
- QTimer 超时不会在单元测试中触发
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 在 AtMega32a 上运行的C++的单元测试
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 如何用 c++ 编写单元测试?