robotframework - 使用 Robot Framework 的执行级别设置和拆卸
问题描述
我知道Test Setup
哪些会在每个测试用例之前执行,Suite Setup
哪些会在每个套件(即每个 .robot 文件)之前执行。
但是,我正在尝试执行命令级别的安装和拆卸,一旦我运行robot
命令并且当所有测试套件都运行时,运行拆卸。
尝试在我的场景目录中有__init__.robot
文件,但根本没有调用它们。
*** Settings ***
Resource ../_common/keywords.robot
Suite Setup Prepare Browser
Suite Teardown Close Browser
我希望能够在任何测试开始之前启动浏览器,然后仅在所有测试完成后关闭浏览器。
例如,robot 1.robot 2.robot
应该:
- 打开浏览器
- 运行
1.robot
测试套件 - 运行
2.robot
测试套件 - 关闭浏览器
解决方案
您可以为此设置“特殊”套件,并在运行中首先调用它们并最后调用它们。SeleniumLibrary 具有全局范围,在第一个中初始化的浏览器应该可以在同一运行中被所有后续套件访问。
例如,套件“Startup.robot”将打开浏览器,“Closing.robot”将关闭它,任何中间人都将使用它:
robot Startup.robot 1.robot 2.robot Closing.robot
当您传递一个执行目录时,框架会按字母顺序获取其中的 .robot 文件,因此您可以将这些特殊套件命名为“0000_Startup.robot”和“zzzz_Closing.robot”,以便它们按相应的顺序运行(即如果您只使用 ascii/latin 文件名)。
是的,初始化文件不用于在其他套件之前运行某些东西 - 它们在那里为其他套件设置默认值,可以在下游覆盖。请参阅文档中的描述。
推荐阅读
- spring-boot - zuul.ignoredHeaders 和 zuul.sensitiveHeaders 有什么区别
- html - How to eliminate space between dt and dd?
- java - 在 lambda 中设置 CompletableFuture 的值
- c++ - 具有多个目录的大型项目的 CMakeLists?
- python - Pandas 在索引和列上使用 Multiindex 重新索引
- python - Python:cgi.FieldStorage.getvalue("D1") 对除 print 之外的 *everything* 产生 None 值
- azure-devops - Azure Service Fabric - 通过 Azure DevOps 部署多个应用程序
- javascript - 如何在chartjs中显示直角
- qt - 如何从另一个 .qml 文件中正确弹出对话框并调整其大小
- android - 在物理设备上启动应用程序时出现颤振错误