我们正在开发一个 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 测试;这些标签来自最新 merge 中的 git 标签(我们称它们为“gtags”,以区分两者)。
一个通过 --include
command-line option 根据其标签指定要运行的案例;因此,如果 gtag 包含“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(“登录”->“登录测试”)。
RF中的标签被标准化——转换为小写并删除所有空格;对于 RF "LoginTest"== "Login Test"== "login test"== "logintest"
(尽管不鼓励使用空格 - 在源代码中放置两个空格太容易了,从而为案例分配两个单独的标签)。因此,无论 gtag 的大小写如何,如果标准化后字符串相同,它们就会匹配。
关于git - 如何根据 git 提交运行机器人框架测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54045533/