홈>
Nueswatch.js를 사용한 엔드 투 엔드 테스트를 포함하여 vue-cli를 사용하여 VueJS 프로젝트를 생성했습니다.
다음 .gitlab-ci.yml 파일을 사용하고 있습니다
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
이
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
}
}
}
}
Gitlab-CI에서 작업은 통과하지만 엔드 투 엔드 테스트가 아닌 단위 테스트 만 통과 한 로그를 확인합니다.
> 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에서 e2e 테스트를 실행하기 위해 gitlab-ci 또는 nightswatch를 올바르게 구성하려면 어떻게해야합니까?
- 답변 # 1
관련 질문
- javascript : Vue js-이미지 소스를 찾을 수 없을 때 대체 이미지 설정
- performance - 느린 Vue 스타일 바인딩
- javascript - VueJS 구성 요소에서 창 스크롤 이벤트를 수신하는 방법은 무엇입니까?
- vue.js - NUXTJS에서 기본 경로를 설정하는 방법
- javascript - 번 들러없이 Nw.js 프로젝트 내에서 Vue.js를 사용하는 방법은 무엇입니까?
- css : Transition을 사용하여 Vuejs의 v-if에서 높이 애니메이션
- javascript - Vuejs 오류 : 클라이언트 측 렌더링 된 가상 DOM 트리가 서버 렌더링과 일치하지 않습니다.
- Vue.js Build.js 스크립트가 종료되지 않음
- vue.js - Vue js DOM이 업데이트되지 않음
- javascript - Vue js 조건부 클래스 바인딩은 최신 변경 사항을 고려하지 않습니다.
좋아, 이제 구성과 작성 파일을 좀 더 살펴 보았으므로 문제가 있다고 생각합니다. 가장 먼저해야 할 일은
selenium/standalone-chrome
를주는 것입니다 .yml 파일에서 이름을 서비스하십시오. 문제는 자바가 설치되지 않은 테스트 컨테이너 (노드 이미지)에서 셀레늄 독립형을 시작하려고한다는 것입니다. 그러나selenium/standalone-chrome
이미지는localhost
대신 테스트를 가리키고 싶은 곳입니다.두 번째로해야 할 일은 나이트 워치 설정에서 셀레늄 섹션을 완전히 제거하고 포인트
selenium_host
입니다. Chrome 서비스의 test_settings 아래에 있습니다.여기는
nightwatch.json
입니다 그리고docker-compose.yml
저를 위해 일하고 있습니다.docker-compose.yml
nightwatch.json