我想测试嵌入式设备的功能。为了简化,我可以说它是一个由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]
...
答案 0 :(得分:3)
问这个问题已经很久了。
嵌入式系统提供了特殊的特性来实现验收测试自动化(其中最重要的一点是,#34;被测设备"与执行测试用例的设备不同;因此需要相同类型的交互界面)。这不是"兴奋地"在进行网页或PC应用程序的测试自动化时,甚至在运行嵌入式软件的单元测试时(也可以在设备外部执行)的情况。 基于这个假设,我认为为进行单元测试而开发的框架并不是开发Emedded System Test Bench进行验收测试的最佳工具。
目前我们正面临类似的情况,试图选择开发环境来实现嵌入式设备的自动化测试。 我们正在研究:
Robot Framework,这是一个基于关键字驱动测试方法的通用验收测试自动化框架。
FitNesse(http://www.fitnesse.org)
Pycopia
还有其他工具不使用Python。例如this thread(MxVDev)
中描述的那些答案 1 :(得分:2)
我认为Robot Framework是适合您的工具。您可以在测试套件中拆分测试,如果一个测试失败,则将运行下一个测试。
答案 2 :(得分:2)
我们在循环测试中将htf用于硬件。它提供了许多功能来自动化嵌入式系统的测试,漂亮的报告,仪表板,固定装置,数据驱动的测试,标记,Docker集成,并且它是专业开发的。
还有一个demo,其中包含一些视频,以使您快速获得概述。
它还支持交互式模式的手动测试。
可以使用oser实现二进制数据抽象。
htf可以免费使用。
答案 3 :(得分:0)
同样,很长时间以来一直有人问我,但是我认为我可以做出贡献。
我们目前正在构建一个完整的测试解决方案,旨在针对嵌入式设备进行验证和确认。我们的旗舰实施基于Google的OpenHTF:https://github.com/google/openhtf
这是您好世界的示例:
import openhtf as htf
from openhtf.output.callbacks import json_factory
from openhtf.plugs import user_input
@htf.measures(htf.Measurement('hello_world_measurement'))
def hello_world(test):
"""A hello world test phase."""
test.logger.info('Hello World!')
test.measurements.hello_world_measurement = 'Hello Again!'
if __name__ == '__main__':
test = htf.Test(hello_world)
test.add_output_callbacks(
json_factory.OutputToJSON('./{dut_id}.hello_world.json', indent=2))
test.execute(test_start=user_input.prompt_for_test_start())
您可以使用不同的模块扩展OpenHTF:
OpenHTF带有自己的GUI,无疑可以为生产测试测试平台或设计验证/验证测试的开发提供巨大的开端。
我很乐意帮助需要指导的任何人。
答案 4 :(得分:0)
我也开始关注openhtf。我有两种情况: