我正致力于设置我的团队的新的单元测试和集成测试基础结构,并希望确保从选择正确的测试框架开始。我是一个嵌入式开发人员,测试代码运行在带有C/C++产品代码库的VxWorks操作系统上。
我们需要一个能够直接测试C/C++进行单元测试的框架,所以对于我们的单元测试,我选择Googletest作为我们的框架。
但是,对于集成测试,我们通常使用Python脚本进行测试(没有测试框架)。Python脚本通过网络和测试用例通过发送命令和接收遥测连接到嵌入式系统。
使用pytest作为测试框架是否有益于我们目前使用Python集成测试嵌入式系统的方式?我看到的大多数示例都是通过在Python产品代码库中为单个函数创建断言,从而以更多的单元测试方式使用pytest的。
编辑:根据hoefling的评论,我将提供一个我们现有的Python集成测试用例的(非常简化的)示例,以及我认为它相应的Pytest实现会是什么。
#Current example
def test_command_counter():
preTestCmdCount = getCmdCountFromSystem()
sendCommandToSystem()
postTestCmdCount = getCmdCountFromSystem()
if (postTestCmdCount != (preTestCmdCount + 1)):
print("FAIL: Command count did not increment!")
else:
print("PASS")
#Using Pytest?
def test_command_counter():
preTestCmdCount = getCmdCountFromSystem()
sendCommandToSystem()
postTestCmdCount = getCmdCountFromSystem()
assert postTestCmdCount == (preTestCmdCount + 1)所以,如果我错了,请纠正我,但是在这个简化的情况下,使用Pytest比普通Python的优点似乎是:
发布于 2019-11-08 14:38:13
我也遇到过类似的情况,从我收集到的信息来看,单元测试框架不适合在嵌入式系统上进行集成测试。这里提出了一个类似的问题:Test framework for testing embedded systems in Python
我们个人使用谷歌的OpenHTF来自动化集成测试(在您的情况下)和产品验证测试,其中包括组装的提升、校准和总体验证。
查看一下:https://github.com/google/openhtf
我们自动化先进的测试设备,如射频开关和频谱分析仪,所有的Python,以测试和校准我们的射频单位,这些工作在超过500 MHz范围内。
使用OpenHTF,您可以非常快速地创建包含度量的完整测试。它为您提供了内置的web,并允许您编写自定义导出“回调”。
我们目前正在为硬件测试构建一个完整的测试解决方案。如果需要的话,我很乐意帮助OpenHTF,因为我们的旗舰实现是基于它的。
发布于 2022-07-20 16:57:10
这条线很旧,但这些建议可能会帮助到某人.
对于嵌入式C在主机PC上和目标上的单元测试,我们使用了统一和CMock。http://www.throwtheswitch.org/
对于硬件在环测试,我们使用pytest。
两者都运行良好,并且都是Jenkins发布工作流程的一部分。
https://stackoverflow.com/questions/56859750
复制相似问题