Я хочу интегрировать свой пакет E2E в Travis, поэтому я следовал этой статье.Как уже упоминалось в статье, я создал собственный protractor.ci.conf.js
файл сборки Travis.Я поместил этот файл в мою папку e2e
(путь: e2e/protractor.ci.conf.js
).
Единственная разница в моих пользовательских e2e/protractor.ci.conf.js
и сгенерированных под углом protractor.conf.js
файлах - это значение в args
свойствеотображается ниже
В моем файле package.json
есть 2 сценария: один для запуска тестов локально и один для Travis .
Package.json (на том же уровне, где расположен protractor.conf.js )
"scripts": {
...
"test": "ng test --watch=false",
"pree2e": "webdriver-manager update",
"e2e": "concurrently --kill-others \"ng e2e --port=4000\" \"npm run _server:run\"",
"e2e:ci": "concurrently --kill-others \"ng e2e --port=4000 --protractor-config=e2e/protractor.ci.conf.js\" \"npm run _server:run\"",
"_server:run": "tsc -p ./server && concurrently \"tsc -w -p ./server\" \"nodemon dist/server/index.js\" ",
...
},
.travis.yml
branches:
only:
- staging
- prod
- functional-testing
script:
...
- if [[ $TRAVIS_COMMIT_MESSAGE == *"[skip e2e]"* ]]; then echo "skipping E2E test"; else npm run e2e:ci; fi
...
before_deploy:
- sed -i '/dist/d' .gitignore
- git add . && git commit -m "latest build"
- cd $TRAVIS_BUILD_DIR/dist
ПРОБЛЕМА
При простом запуске npm run e2e
каждый тест работает нормально.Но когда я использую npm run e2e:ci
командные сценарии зависает и ни один экземпляр WebDriver не запускается.
I / launcher - вместо 0 запускается 0 экземпляров WebDriver
1 или 2 экземпляра.