用于python unittest框架的robot框架测试套件

robotsuite的Python项目详细描述


Robot框架的Python UnitTest测试套件

这是一个实验包 用于将robot框架测试套件包装到python unittest套件中 使运行robot框架测试成为可能 如 plone.testing 的分层测试套件:

importunittestfromplone.testingimportlayeredfromrobotsuiteimportRobotTestSuitefrommy_package.testingimportACCEPTANCE_TESTINGdeftest_suite():suite=unittest.TestSuite()suite.addTests([layered(RobotTestSuite('mysuite.txt'),layer=ACCEPTANCE_TESTING),])returnsuite

RobotTestSuite 将Robot框架测试套件拆分为单独的 unittest测试用例,以便robot每次测试都运行一次 从给定的robot框架解析的每个测试套件中的case 测试套件。 因此,每个机器人将生成单独的测试报告 每次测试。 每个报告都有自己的文件夹, 递归创建的 反映给定测试套件的结构。

RobottestSuite将测试包装成 unittest的测试套件类似于doctest模块的 doctestsuite做包装。 参见doctestsuite的文档 可能的通用参数(例如,如何从 不同的包装)。

这个计划的主要动机是 机器人框架支持现有的测试夹具和测试隔离 当测试时 plone 。 然而,这应该可以帮助任何想要使用机器人框架的人 zope.testrunner 或其他与python unittest兼容的测试运行程序。

如果这对您有用,请在以下网址投稿: http://github.com/collective/robotsuite/

https://secure.travis-ci.org/collective/robotsuite.png

从环境变量设置robot变量

robot框架支持从命令行重写测试变量 在运行与其他测试打包的robotsuite测试时不可用 跑步者。这就是为什么robotsuite支持将设置变量作为环境 变量,以便每个前缀为 映射到相应的测试变量中,不带robot前缀。

通过给定的标记集声明测试非关键性

robot框架支持将带有给定标记的测试声明为非关键的 以防止他们未能通过完整的ci构建。这是支持的 作为robottestsuite的关键字参数,如下所示:

deftest_suite():suite=unittest.TestSuite()suite.addTests([layered(RobotTestSuite('mysuite.txt',noncritical=['non-critical-tag']),layer=ACCEPTANCE_TESTING),])returnsuite

设置zope.testrunner级别

zope.testrunner 支持用要避免的级别对测试套件进行注释 除非需要,否则运行缓慢的测试:

deftest_suite():suite=unittest.TestSuite()suite.addTests([layered(RobotTestSuite('mysuite.txt'),layer=ACCEPTANCE_TESTING),])suite.level=10returnsuite

将测试结果附加到现有测试报告中

当通过robotsuite运行robot框架时,将创建其测试报告 在当前工作目录中输入文件名 robot_output.xml robot_log.html robot_report.html 。默认行为是 重写现有的robot_output.xml(以及其他报告文件 由此产生)。

若要将来自不同测试运行的测试结果合并到同一个测试报告中,请设置 环境变量 robotsuite_append_output_xml=1 防止robotsuite 从重写现有的测试结果,但始终附加到现有的 机器人输出.xml

筛选测试执行错误

ET环境变量 robotsuite_loglevel=error 过滤所有顶层 测试执行错误 低于合并的 测试报告。当不必要的警告从 已将代码测试到robot框架日志中。

包括或跳过所有RobottestSuite包装测试

robot framework通常与selenium2library一起用于编写验收测试 使用selenium框架。但是,因为这些测试可能运行得很慢, 有时可能需要(例如在ci上)运行除robotsuite之外的所有内容 包装测试,以后只有RobotSuite包装测试。

当然,可以通过在名称中插入自定义字符串来实现 使用 robotsuite_前缀包装的robotsuite测试的 然后用字符串筛选测试。

例如,使用以下命令运行除robotsuite包装测试之外的所有测试:

$ ROBOTSUITE_PREFIX=ROBOTSUITE bin/test --all -t \!ROBOTSUITE

另一种方法是:

$ ROBOTSUITE_PREFIX=ROBOTSUITE bin/test --all -t ROBOTSUITE

重新使用其他软件包中的测试套件

有时,从上游重新使用验收测试可能是有用的 包装测试您稍微定制的包装(例如,使用自定义主题)。 这可以通过使用 -robottestsuite的关键字参数

deftest_suite():suite=unittest.TestSuite()suite.addTests([layered(leveled(robotsuite.RobotTestSuite('robot',package='Products.CMFPlone.tests'),),layer=PLONE_APP_MOSAIC_NO_PAC_ROBOT),])returnsuite

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么相机的实时预览旋转90度?   java为什么我的安卓notification没有出现?   Java在ArrayList中循环以扫描匹配值   使用Apache HTTPClient的java“cURL u”API密钥授权   java weblogic需要配置war文件部署   java如何在条目顺序不断变化时比较两个JSON字符串   java JAXB是否将未定义的元素解组以映射?   java如何防止通过控制台输入优先于禁用按钮?   java使用两个JCalender实现SWT应用   java有一种调用JTextField的方法。没有激发DocumentListener的removeupdate()的setText()?   java Spring启动应用程序执行器端点得到注册,请求仍然失败   集合按对象Java流分组   java SpringBoot:EclipseLink与H2   java有没有一种方法可以代替IntelliJ上的run按钮来执行命令行   java与Executor服务在D语言中的等价物?   java系统。出来打印不显示ArrayList<Object>   java字符串不包含格式说明符   HDF5Java。HDFView中的lang.UnsatifiedLinkError   java片段未显示在Android导航组件中   java如何迭代包含arraylist的Hashmap