Как запустить тестирование фреймворка робота на основе коммитов git? - PullRequest
0 голосов
/ 04 января 2019

Мы разрабатываем веб-приложение, в котором мы проводим регрессионные тесты для фреймворка роботов Я хотел бы иметь возможность запускать определенные тесты инфраструктуры роботов на основе тегов из 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? Например, запуск тестов «Логин», потому что кто-то выдвинул коммит с тегом [Логин] в своем сообщении коммита.

Вот пример набора тестов.

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)

Дополнительная информация

Robot Framework Версия: 3.0.4

Внешний интерфейс приложения: AngularJS

Бэкэнд приложения: C #

1 Ответ

0 голосов
/ 05 января 2019

Согласно обсуждению в комментариях, ваша цель - запустить тесты 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 позволяет это с помощью логических операторов «И», «ИЛИ» и «НЕ» внутри значения:

--include logintestsORlogouttests

При использовании «И» будут выбраны только случаи, имеющие оба тега, «ИЛИ» - случаи, имеющие любой из тегов (звучит как ваш случай), «НЕ» отрицает логику контроля. Эти три управляющие строки чувствительны к регистру .

Естественно, чтобы эта схема работала, gtags должны быть такими же, как те, что вы положили в тестовые случаи. Если нет, вам придется добавить некоторую логику, чтобы сопоставить gtags и gtags в случаях («Login» -> «logintests»).

Тэги в RF нормализуются - преобразуются в нижний регистр и все пробелы удаляются; для RF "LoginTest" == "Login Test" == "login test" == "logintest" (хотя использование пробелов не рекомендуется - слишком легко поместить два в источнике, таким образом назначая два отдельных тега кейсу) . Таким образом, независимо от того, какой регистр получен из gtags, они будут сопоставлены, если после нормализации строки будут одинаковыми.

...