小编典典

用于在Python中测试嵌入式系统的测试框架

python

我想测试嵌入式设备的功能。为简化起见,我可以说这是一个人形机器人,由PC通过C / C ++ API进行远程控制。

我非常有兴趣使用它,nosetests因为它没有样板方法。但是,我的情况要复杂一些。实际测试在C#程序上运行,大约需要24小时才能完成。通过切换到Python,我可能会节省大量开发新测试的时间。但是,在这样做之前,我正在寻找一些答案。

古老的测试套件的第一个问题是,所有测试都以预定的顺序执行,并且如果发生任何错误,整个测试将停止。我想构建不依赖于其他测试结果的独立测试套件。例如,与机器人手臂相关的测试与腿部之一无关。但是,步行测试都必须成功。

晚上,所有测试套件都被执行。如果一个失败,则执行下一个,依此类推。这样做的好处是,比起离开后10分钟的星期五晚上整个测试已经失败,在星期一早上恢复工作时,您可以获得更有用的结果。

所以我在寻找一种测试框架,该框架允许:

  • 在测试套件中拆分测试。
  • 尝试每个测试套件,无论先前的套件是否失败。
  • 提供有关某些测试的依赖性的信息。

我看了一下Proboscis,它允许依赖项固定,但是该项目看起来已经死了。

我想知道自定义鼻子以获取这些功能将花费多少工作。也许还值得尝试另一个测试框架。我不知道,我需要一些线索…

因此,为了使事情尽可能简单,以下是我如何看待我的测试:

#!/usr/bin/python

def testArms():
   ...
   pass

def testLegs():
   ...
   pass

@depend(testArms, testLegs)
def testWalk():
   ...
   pass

test_suite1 = [testLegs, testArms, testWalk]

...

阅读 198

收藏
2021-01-20

共1个答案

小编典典

自问这个问题很久以来。

嵌入式系统为实现验收测试自动化提供了特殊的特性(最重要的特征之一是,“被测设备”很可能与执行测试用例的设备不同;因此,需要相同类型的交互接口)
。在对网页或PC应用程序进行自动化测试时,甚至在对嵌入式软件(也可以在设备外部执行)进行单元测试时,都不是“例外”情况。基于这个假设,我认为为进行单元测试而开发的框架并不是开发用于执行验收测试的嵌入式系统测试平台的最佳工具。

目前,我们正面临类似的情况,试图选择开发环境来实现嵌入式设备的自动化测试。我们正在调查:

  • Robot Framework,这是一个基于关键字驱动的测试方法的通用验收测试自动化框架。

  • FitNesse(http://www.fitnesse.org

  • 窥视

2021-01-20