git - 如何根据 git 提交运行机器人框架测试?

标签 git selenium jenkins robotframework git-extensions

我们正在开发一个 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/

相关文章:

git - 我丢失了自述文件,因为我在本地执行了 'git push --force' 但我不知道如何取回它。自述文件是在远程创建的

c# - 在缓存中找不到元素 - 也许页面在查找后已更改 c#

windows - 如何在自动化中验证音频/视频流

android - Android 集成/功能测试的外部化配置

git - 在dockerfile中使用tmaier/docker-compose

Git:所有分支的默认 "no commit" merge 行为?

git - 如何调试 Cannot run program "C:\Program Files\Git"in a Jenkins job?

jenkins - Jenkinsfile 中的通用包装器

git - 无法使用 git 克隆任何存储库

javascript - Protractor + Selenium Chrome Docker = WebDriverError : unknown error: Chrome failed to start: exited normally