我们正在开发一个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]标签的提交。
这是一个测试套件的例子。
FileName = 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#
答案 0 :(得分:4)
通过评论中的讨论,您的目标是运行具有特定标签的Robot Framework测试;这些标记来自最新合并中的git标记(我们将它们称为“ gtags” ,以区别两者)。
一个通过--include
command-line option根据其标签指定要运行的案例;因此,如果gtags包含“ LoginTests”,则只能像这样运行它们:
robot -P C:\home\(Repository root here) --include logintests C:\home\(Path to test cases)
如果gtag不止一个,例如它们是(LoginTests, LogoutTests)
,则可以附加更多--include
选项:
--include logintests --include logouttests
另一种选择是将它们组合为单个include
参数-RF允许通过在值内部使用“ AND”,“ OR”和“ NOT” boolean operators来实现:
--include logintestsORlogouttests
使用“ AND”将仅选择同时具有两个标签的案例,“ OR”-具有两个标签中的任何一个案例(听起来像您的案例),“ NOT”将否定后续逻辑。这三个控制字符串区分大小写。
自然,要使此方案起作用,gtag必须与您在测试用例中放置的gtag相同。如果不是,则必须添加一些逻辑以将gtag映射到案例中的gtag(“登录”->“ logintests”)。
RF中的标签已归一化-转换为小写并删除所有空格;对于RF "LoginTest" == "Login Test" == "login test" == "logintest"
(尽管不鼓励使用空格-太容易在源中放置两个空格,因此为案件分配了两个单独的标签)。因此,无论来自gtag的大小写形式如何,如果标准化后的字符串相同,它们就会匹配。