2017-02-03 1 views
3

각도 2 앱을 쓰고 phantomJS 실행기를 사용하여 Gitlab CI에서 테스트를 설정하려고합니다. 모든 테스트가 완료되면 phantomJS 실행 프로그램이 영원히 계속 작동합니다 (http://i.imgur.com/TD7cLdq.png). 테스트가 성공적으로 통과 된 후 어떻게 종료 할 수 있습니까?테스트 실행 후 phantomJS 실행 프로그램을 종료하는 방법은 무엇입니까?

{ 
    "name": "kibernum-dnc-client", 
    "version": "0.0.0", 
    "license": "MIT", 
    "angular-cli": {}, 
    "scripts": { 
    "ng": "ng", 
    "start": "ng serve", 
    "lint": "tslint \"src/**/*.ts\" --project src/tsconfig.json --type-check && tslint \"e2e/**/*.ts\" --project e2e/tsconfig.json --type-check", 
    "test": "ng test --browsers PhantomJS", 
    "testd": "ng test --browsers Chrome", 
    "pree2e": "webdriver-manager update --standalone false --gecko false", 
    "e2e": "protractor" 
    }, 
    "private": true, 
    "dependencies": { 
    "@angular/common": "^2.3.1", 
    "@angular/compiler": "^2.3.1", 
    "@angular/core": "^2.3.1", 
    "@angular/forms": "^2.3.1", 
    "@angular/http": "^2.3.1", 
    "@angular/platform-browser": "^2.3.1", 
    "@angular/platform-browser-dynamic": "^2.3.1", 
    "@angular/router": "^3.3.1", 
    "core-js": "^2.4.1", 
    "rxjs": "^5.0.1", 
    "ts-helpers": "^1.1.1", 
    "zone.js": "^0.7.2" 
    }, 
    "devDependencies": { 
    "@angular/compiler-cli": "^2.3.1", 
    "@types/jasmine": "2.5.38", 
    "@types/node": "^6.0.42", 
    "angular-cli": "1.0.0-beta.25.5", 
    "codelyzer": "~2.0.0-beta.1", 
    "jasmine-core": "2.5.2", 
    "jasmine-spec-reporter": "2.5.0", 
    "karma": "1.2.0", 
    "karma-chrome-launcher": "^2.0.0", 
    "karma-cli": "^1.0.1", 
    "karma-jasmine": "^1.0.2", 
    "karma-phantomjs-launcher": "^1.0.2", 
    "karma-remap-istanbul": "^0.2.1", 
    "phantomjs-prebuilt": "^2.1.14", 
    "protractor": "~4.0.13", 
    "ts-node": "1.2.1", 
    "tslint": "^4.3.0", 
    "typescript": "~2.0.3" 
    } 
} 

여기 내 karma.conf.js 다음과 같습니다 :

여기 내 package.json입니다

module.exports = function (config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine', 'angular-cli'], 
    plugins: [ 
     require('karma-jasmine'), 
     require('karma-chrome-launcher'), 
     require('karma-remap-istanbul'), 
     require('angular-cli/plugins/karma'), 
     require('karma-phantomjs-launcher'), 
    ], 
    phantomJsLauncher: { 
     exitOnResourceError: true 
    }, 
    files: [ 
     { pattern: './src/test.ts', watched: false } 
    ], 
    preprocessors: { 
     './src/test.ts': ['angular-cli'] 
    }, 
    mime: { 
     'text/x-typescript': ['ts','tsx'] 
    }, 
    remapIstanbulReporter: { 
     reports: { 
     html: 'coverage', 
     lcovonly: './coverage/coverage.lcov' 
     } 
    }, 
    angularCli: { 
     config: './angular-cli.json', 
     environment: 'dev' 
    }, 
    reporters: config.angularCli && config.angularCli.codeCoverage 
       ? ['progress', 'karma-remap-istanbul'] 
       : ['progress'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome', 'PhantomJS'], 
    singleRun: true 
    }); 
}; 

명령 실행 테스트 npm run test입니다.

singleRun: true과 함께해도 실행기는 영원합니다. 여기

는 예제 프로젝트입니다 : https://github.com/gandra/angular-testing-demo

단계 reprocue하는 문제 : 예상

git clone https://github.com/gandra/angular-testing-demo 
cd angular-testing-demo 
npm install 
npm run test 

: 테스트 통과 확인하고 종료 콘솔 하지만이되지 발생 :(

답변

12

당신 때문에 angular-cli를 사용하는 경우이 명령을 사용하면 요구 사항이 해결됩니다.

ng test --single-run 

또는

ng test --watch=false