同时运行unittest测试用例和机器人框架测试用例

时间:2014-02-03 18:37:31

标签: python robotframework python-unittest

我们小组正在为我们的QA小组评估机器人测试框架,不仅仅是针对BDD,还可能涵盖我们的许多常规功能测试需求。这当然是一个引人注目的项目。

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

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

这是一个解决的问题吗?有人做过这种事吗?

3 个答案:

答案 0 :(得分:8)

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

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

RF最适合验收测试和集成测试,这是对您的系统进行一流的验证。

尽管如此,您可以将RF和xunit集成到您的QA系统中。并合并来自RF和单元测试的报告。

答案 1 :(得分:4)

虽然代码单元测试和功能/非功能测试的目标是分开的,但python unittest模块可以作为QA测试和单元测试的框架。机器人框架是从头开始设计的,用于QA测试,并使用Python / Java等语言进行挂钩。

机器人框架适用于具有漂亮HTML输出的表格测试用例。虽然unittest与其名称所暗示的相当不错,但它也可以很好地适用于非单元测试,其中asserts直接调用功能测试代码。还有用于单元测试输出的插件,例如HTMLTestRunner,它们具有类似于机器人框架html输出的“漂亮”特性。

我们大量使用Robot框架进行工作中的QA测试,我们决定将所有测试用例切换到unittest模块。虽然我理解模块不是一个功能测试平台的意图,但机器人框架被证明是我们需要编写和执行的测试用例的一个复杂层。这导致更多的时间和精力将本机测试代码挂钩到Robot中,随着测试套件的增长,调试越来越强硬。使用unittest,我们在本机python中执行相同的测试(Robot的内置功能和插件对我们项目的复杂性来说过于夸张)。我们现在在QA测试开发期间直接依赖python语言和完全IDE支持,然后使用任何CI工具/报告机制进行报告。

答案 2 :(得分:2)

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

使用机器人,您可以标记您的单元测试或将它们全部放在一个单独的层次结构中,以便您可以根据需要将它们与验收测试分开运行,或者将它们组合在一起并单独分析统计信息。