Я использую node.js mocha и selenium-webdriver для тестирования e2e.
У меня есть разные этапы, такие как установка, кнопка проверки 1, кнопка проверки 2.
На каждом этапе (кроме установки) есть 2 задания (для chrome и для safari).
Моя цель, в конце концов, получить 1 текстовый файл с результатами тестов всех заданий всех этапов.
Я пробовал много разных конфигураций:
- всегда передавайте артефакт report.txt и запускайте ./mocha >> report.txt в каждом задании.
- приводит к несогласованности данных в файле (не все задания записываются, частично записываются и т. Д.)
- всегда передают 2 артефакта report1.txt, report2.txt, поэтому задание для chrome write только в # 1, задание для сафари в # 2
- вообще не работает, бог знает почему
- зависимости с 2 артефактами report1.txt, report2.txt
- по какой-то причине артефакт node_modules, который генерируется на этапе установки, не переходя на следующие этапы.
У меня больше нет примеров для этих установок, они грязные, но я приведу пример моего .gitlab-ci.yml, может быть, вы мне поможете с этим.
stages:
- install
- startup
- quality
- language
- report
.chrome_template: &chrome_template
environment:
name: chrome
variables: &chrome_template_var
SELENIUM_BROWSER: chrome
tags:
- "macbook"
.safari_template: &safari_template
environment:
name: safari
variables: &safari_template_var
SELENIUM_BROWSER: safari
tags:
- "macbook"
# install job
install:
stage: install
tags:
- "macbook"
script:
- npm install
artifacts:
paths:
- node_modules/
except:
- tags
# testing jobs
.startup: &startup
stage: startup
variables: &startup-var
SPEC: startup
script:
- npm run test
retry: 1
artifacts:
when: on_failure
paths:
- screenshot
.quality: &quality
stage: quality
variables: &quality-var
SPEC: quality
script:
- npm run test
retry: 1
artifacts:
when: on_failure
paths:
- screenshot/
.language: &language
stage: language
variables: &language-var
SPEC: language
script:
- npm run test
retry: 1
artifacts:
when: on_failure
paths:
- screenshot/
startup:chrome:
<<: *startup
<<: *chrome_template
variables:
<<: *startup-var
<<: *chrome_template_var
language:chrome:
<<: *language
<<: *chrome_template
variables:
<<: *language-var
<<: *chrome_template_var
quality:chrome:
<<: *quality
<<: *chrome_template
variables:
<<: *quality-var
<<: *chrome_template_var
startup:safari:
<<: *startup
<<: *safari_template
variables:
<<: *startup-var
<<: *safari_template_var
language:safari:
<<: *language
<<: *safari_template
variables:
<<: *language-var
<<: *safari_template_var
quality:safari:
<<: *quality
<<: *safari_template
variables:
<<: *quality-var
<<: *safari_template_var
report:
stage: report
tags:
- "macbook"
script:
- cat *.txt > report.txt
artifacts:
paths:
- report.txt