Nightswatch.js와의 엔드 투 엔드 테스트를 포함하여 vue-cli를 사용하여 VueJS 프로젝트를 생성했습니다. 나는 다음과 같은 .gitlab-ci.yml 파일gitlab-ci에서 VueJS 앱의 e2e 테스트
services:
- selenium/standalone-chrome
stages:
- test
- pages
test:
image: node:6.11
stage: test
before_script:
- node -v
- npm -v
script:
- npm install
- npm test
pages:
image: node:6.11
stage: pages
before_script:
- node -v
- npm -v
script:
- npm install
- npm run build
- cp -R ./dist ./public
- cd ./public
- ls
artifacts:
paths:
- public
only:
- master
이 사용하고
이 Gitlab-CI에서 nightswatch.conf.js
파일
require('babel-register')
var config = require('../../config')
// http://nightwatchjs.org/gettingstarted#settings-file
module.exports = {
src_folders: ['test/e2e/specs'],
output_folder: 'test/e2e/reports',
custom_assertions_path: ['test/e2e/custom-assertions'],
selenium: {
start_process: true,
server_path: require('selenium-server').path,
host: '127.0.0.1',
port: 4444,
cli_args: {
'webdriver.chrome.driver': require('chromedriver').path
}
},
test_settings: {
default: {
selenium_port: 4444,
selenium_host: 'localhost',
silent: true,
globals: {
devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true
}
},
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true
}
}
}
}
입니다 작업은 통과하지만 로그보고 만 단위 테스트는 통과 테스트이며, 종단 간 테스트는 통과하지 않습니다.
> node test/e2e/runner.js
Starting selenium server...
An error occurred while trying to start Selenium. Check if JAVA is installed on your machine.
{ Error: spawn java ENOENT
at exports._errnoException (util.js:1020:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:197:32)
at onErrorNT (internal/child_process.js:376:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:606:11)
at run (bootstrap_node.js:383:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:496:3
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn java',
path: 'java',
spawnargs:
[ '-Dwebdriver.chrome.driver=/builds/Overdrivr/frontend/node_modules/chromedriver/lib/chromedriver/chromedriver',
'-jar',
'/builds/Overdrivr/frontend/node_modules/selenium-server/lib/runner/selenium-server-standalone-3.8.1.jar',
'-port',
4444 ] }
INFO Selenium process finished.
Job succeeded
가 어떻게 제대로 gitlab-CI 또는 Gitlab-CI에 E2E 테스트를 실행하는 nightswatch 구성 할 수 있습니다 ?
당신이이 테스트를 실행하는 기계는 JAVA가 설치되어 있어야합니다. 셀레늄은 그것 없이는 달릴 수 없다. – tehbeardedone
셀레늄/독립형 크롬 고정 이미지 위로 자바를 추가하면 문제가 해결 될 것이라고 생각하십니까? 아니면 여기서 더 정교한 작업을해야합니까? – Overdrivr
어쨌든이 문제를 해결하기 위해 Docker를 사용하고 싶었습니다. 그 이미지에는 이미 Java가 설치되어 있어야합니다. 지금 나는 잘못되어 가고있는 것이 정말로 혼란 스럽다. 내가 사용하고있는 Gitlab 러너에 Java 기능이 있는지 확인합니다. 사용중인 고정 표시기 이미지에는 이미 Java가 설치되어 있으므로 그렇게 할 수 없습니다. – tehbeardedone