python - 用Python测试嵌入式系统的测试框架

标签 python unit-testing testing

<分区>

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

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

古老测试套件的第一个问题是所有测试都按照预定义的顺序执行,如果出现任何错误,整个测试就会停止。我想构建不依赖于其他测试结果的独立测试套件。例如,与机器人 ARM 相关的测试与其中一条腿无关。但是,步行测试需要两者都成功。

在晚上执行所有测试套件。如果一个失败,则执行下一个,依此类推。这样做的好处是,当你在周一早上回来工作时,你可以获得比周五晚上​​你离开 10 分钟后整个测试都失败的情况更有用的结果。

所以我正在寻找一个测试框架,它允许:

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

我看了Proboscis允许依赖项固定装置,但该项目看起来已经死了。

我想知道定制 nose 需要做多少工作才能获得这些功能。也许还值得尝试另一个测试框架。我不知道,我需要一些线索...

因此,为了让事情尽可能简单,以下是我对测试的看法:

#!/usr/bin/python

def testArms():
   ...
   pass

def testLegs():
   ...
   pass

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

test_suite1 = [testLegs, testArms, testWalk]

...

最佳答案

很久没问这个问题了。

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

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

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

  • 健身 ( http://www.fitnesse.org )

  • 远视

还有其他不使用 Python 的工具。例如 this thread 中描述的那些(MxVDev)

关于python - 用Python测试嵌入式系统的测试框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34189223/

相关文章:

git - 在 Git 中提交之前临时清除未跟踪的文件

Python 正则表达式匹配直到多行字符

java - 使用 EasyMock 在子类中模拟父类(super class)的对象

javascript - 我如何测试我的 web api Post Web 方法以了解内部发生了什么?

php - 集成测试中的并行 PHPUnit 测试

php - 如何对使用 ORM 的应用程序进行单元测试?

ruby-on-rails - 在 rails 中测试单个属性时,得到 "can' t be nil"其他所有属性的错误

python - 如何在Python中将字符串转换为null或Nan?

python - 如何求自然对数的导数得到 TypeError : can't convert expression to float

python - 无法在 Keras 中使用 VGG19 预测单个图像的标签