首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否应该使用pytest对嵌入式系统进行集成测试?

是否应该使用pytest对嵌入式系统进行集成测试?
EN

Stack Overflow用户
提问于 2019-07-02 20:38:27
回答 2查看 3.1K关注 0票数 3

我正致力于设置我的团队的新的单元测试和集成测试基础结构,并希望确保从选择正确的测试框架开始。我是一个嵌入式开发人员,测试代码运行在带有C/C++产品代码库的VxWorks操作系统上。

我们需要一个能够直接测试C/C++进行单元测试的框架,所以对于我们的单元测试,我选择Googletest作为我们的框架。

但是,对于集成测试,我们通常使用Python脚本进行测试(没有测试框架)。Python脚本通过网络和测试用例通过发送命令和接收遥测连接到嵌入式系统。

使用pytest作为测试框架是否有益于我们目前使用Python集成测试嵌入式系统的方式?我看到的大多数示例都是通过在Python产品代码库中为单个函数创建断言,从而以更多的单元测试方式使用pytest的。

编辑:根据hoefling的评论,我将提供一个我们现有的Python集成测试用例的(非常简化的)示例,以及我认为它相应的Pytest实现会是什么。

代码语言:javascript
复制
#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的优点似乎是:

  1. 能够利用pytest的自动测试用例发现,这样我就可以轻松地运行我的所有测试函数,而不必创建自定义代码。
  2. 能够使用“assert”语法,该语法将自动为每个测试生成pass/fail语句,而不必为每个测试用例手动实现pass/fail语句
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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,因为我们的旗舰实现是基于它的。

票数 2
EN

Stack Overflow用户

发布于 2022-07-20 16:57:10

这条线很旧,但这些建议可能会帮助到某人.

对于嵌入式C在主机PC上和目标上的单元测试,我们使用了统一和CMock。http://www.throwtheswitch.org/

对于硬件在环测试,我们使用pytest。

两者都运行良好,并且都是Jenkins发布工作流程的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56859750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档