运行unittest测试用例和Robot框架测试用例

2024-04-28 23:14:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我们的团队正在为我们的QA团队评估Robot测试框架,不仅仅是BDD,还可能涵盖我们的许多常规功能测试需求。这无疑是一个引人注目的项目。

如果有的话,Robot框架在多大程度上是基于xunit(unittest)架构的?我看到unittest断言可以使用,但我看不到RF测试用例本身是基于unittest.TestCase的。

理想情况下,我们的组织希望能够编写Robot框架测试,以及Python unittest测试用例,从一个运行程序一起运行测试用例并获得集成结果,重用RF的Selenium2库的“关键字”作为常规unittest测试用例使用的函数,以便共享通用SE代码库。

这个问题解决了吗?有人做这种事吗?


Tags: 项目框架架构robot测试用例断言unittest团队
3条回答

RobotFramework不是单元测试的正确工具。

  • 单元测试应该用单元(模块、类等)的相同语言编写
  • 在单元测试中,用自然语言描述场景的能力(这是像RF这样的系统最强大的特性之一)毫无价值。在这个级别的测试场景是输入x的您得到输出y

RF最适合于验收测试和集成测试,即系统的顶级验证。

不过,您可以将RF和xunit集成到您的QA系统中。合并射频和单元测试的报告。

虽然代码单元测试和功能/非功能测试的目标截然不同,但是python单元测试模块可以作为QA测试和单元测试的框架。Robot框架是从一开始就为QA测试而设计的,使用钩子将QA测试转换成Python/Java等语言。

Robot框架在具有漂亮HTML输出的表格测试用例中工作得很好。尽管unit test的名字很好地表达了它的含义,但它也可以很好地用于断言直接调用功能测试代码的非单元测试。unittest输出也有一些插件,比如HTMLTestRunner,它们具有类似于Robot框架html输出的“漂亮”特性。

我们在工作中大量使用Robot框架进行QA测试,并决定将所有测试用例切换到unittest模块。虽然我知道模块不是功能测试台的目的,但Robot框架被证明是我们需要编写和执行的测试用例的一个复杂层。这导致更多的时间和精力将本机测试代码连接到Robot中,随着测试套件的增长,调试变得越来越困难。使用unittest,我们在原生python中执行相同的测试(Robot的内置特性和插件对于我们项目的复杂性来说太普通了)。在QA测试开发期间,我们现在直接依赖python语言和完全的IDE支持,然后使用CI工具/报告机制进行报告。

机器人根本不是基于xunit技术的。我个人认为它是一个很好的python代码单元测试框架,因为您可以创建关键字来直接导入模块。我在一些我工作的项目中使用这种技术。

使用robot,您可以标记您的单元测试,或者将它们放在单独的层次结构中,以便您可以根据需要将它们与验收测试分开运行,或者将它们组合起来,分别得到统计数据。

相关问题 更多 >