[英]How do I run robot framework tests based on git commits?
我们正在开发一个Web应用程序,在其中运行机器人框架回归测试。 我希望能够基于git的标签运行特定的机器人框架测试,因此我不必每次都运行完全回归。
目前,我使用Jenkins执行Windows批处理命令。 我的第一项工作是从存储库中提取所有内容。
cd /d C:\home\(Repository here)
git pull --summary
我的第二项工作是运行指定的测试,当前是完全回归测试。
robot -P C:\home\(Repository root here) C:\home\(Path to test cases)
有没有一种方法可以基于git中的某些标签运行特定的测试? 例如,运行“登录”测试是因为有人推送了在其提交消息中具有[Login]标签的提交。
这是一个测试套件的示例。
文件名= C:\\ home(Repo)\\ Regression \\ Common \\ Login \\ LoginTestSuite.txt
*** Settings ***
Documentation Login Test Suite
Suite Setup Suite Setup
Library SeleniumLibrary
Force Tags LoginTests
*** Test Cases ***
User A Login Test
[Documentation] This is documentation
[Tags] Requirement A
(Test Steps Here)
附加信息
机械手框架版本:3.0.4
应用程序前端:AngularJS
应用程序后端:C#
通过评论中的讨论,您的目标是运行具有特定标签的Robot Framework测试; 这些标记来自最新合并中的git标记(我们将它们称为“ gtags” ,以区别两者)。
一个通过--include
命令行选项基于标签来指定要运行的案例; 因此,如果gtags包含“ LoginTests”,则只能像这样运行它们:
robot -P C:\home\(Repository root here) --include logintests C:\home\(Path to test cases)
如果gtags都不止一个,说他们是(LoginTests, LogoutTests)
你可以追加更多--include
选项:
--include logintests --include logouttests
另一种选择是将它们组合为单个include
参数-RF允许通过在值内部使用“ AND”,“ OR”和“ NOT” 布尔运算符来实现:
--include logintestsORlogouttests
使用“与”时,将仅选择同时具有两个标签的案例,“或”-具有两个标签中的任何一个案例(听起来像您的案例),“不”则否定后续逻辑。 这三个控制字符串区分大小写 。
自然,为了使该方案起作用,gtag必须与您在测试用例中放置的gtag相同。 如果不是,则必须添加一些逻辑以将gtag映射到案例中的gtag(“登录”->“ logintests”)。
RF中的标签已标准化-转换为小写并删除了所有空格; 对于RF "LoginTest" == "Login Test" == "login test" == "logintest"
(尽管不鼓励使用空格-太容易将两个放在源中,因此为案例分配了两个单独的标签) 。 因此,不管来自gtags的大小写形式是什么,如果标准化后的字符串相同,它们将被匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.