2016-09-05 2 views
11

몇 일 동안 몇 가지 단위 테스트를 성공적으로 수행하려고합니다. 내 응용 프로그램은 typescript로 기록됩니다 (단위 테스트는 타이프 스크립트로도 쓰여짐). 여기 내 카르마 구성 파일입니다SystemJS + Karma + TypeScript - 테스트 실행 안 함

module.exports = function (config) { 
    config.set({ 

    basePath: "../../../../", 

    frameworks: [ 
     "jasmine", 
     "systemjs" 
    ], 

    browsers: ['PhantomJS'], 

    singleRun: true, 
    reporters: ['progress'], 

    systemjs: { 
     config: { 
     paths: { 
      systemjs: "src/main/webapp/static/js/engage/lib/bower/system.js/dist/system.src.js", 
      typescript: "build/node_modules/typescript/lib/typescript.js" 
     }, 
     transpiler: "typescript" 
     }, 

     // testFileSuffix: ".spec.ts" 
    }, 

    files: [ 
     'src/main/webapp/static/js/engage/dist/vendor/vendor.min.js', 
     'src/main/webapp/static/js/engage/lib/bower/system.js/dist/system-polyfills.src.js', 
     'src/main/webapp/static/js/engage/lib/bower/angular-mocks/angular-mocks.js', 
     {pattern: "src/main/webapp/static/js/engage/app/**/*.spec.ts", served: true, included: false} 
    ] 
    }); 
}; 

나는 다음과 같은 오류 얻을 karma start 실행하면 :

: 나는 크롬 브라우저의 속성을 변경하는 경우

05 09 2016 21:39:45.543:INFO [karma]: Karma v1.2.0 server started at http://localhost:9876/ 
05 09 2016 21:39:45.546:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency 
05 09 2016 21:39:45.558:INFO [launcher]: Starting browser PhantomJS 
05 09 2016 21:39:47.631:INFO [PhantomJS 1.9.8 (Mac OS X 0.0.0)]: Connected on socket /#c-ZoxCczyYymPDAtAAAA with id 8911412 
05 09 2016 21:39:47.650:WARN [web-server]: 404: /base/src/main/webapp/static/js/engage/lib/bower/system.js/dist/system-polyfills.js 
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR 
    You need to include some adapter that implements __karma__.start method! 

, 나는 다음과 같은 오류를

Chrome 52.0.2743 (Mac OS X 10.11.6) ERROR 
    Error: ReferenceError: jasmineRequire is not defined 
      at eval (build/node_modules/karma-jasmine/lib/boot.js:14:32) 
      at eval (build/node_modules/karma-jasmine/lib/boot.js:41:2) 
     Evaluating build/node_modules/karma-jasmine/lib/boot.js 
     Error loading build/node_modules/karma-jasmine/lib/boot.js 

다음은 내 패키지입니다 .json 관련 종속성 :

"phantomjs": "^1.9.11", 
"karma-systemjs": "^0.14.0", 
"karma-jasmine": "^1.0.2", 
"karma-chrome-launcher": "^0.1.5", 
"jasmine-core": "^2.5.0" 

도움이 될 것입니다. 최신 버전으로 종속성을

plugins: [ 
    'karma-jasmine', 
    'karma-chrome-launcher' 
], 

사용 카르마 설정에 마지막 Node.js를 6.5 플러그인 옵션을 추가하고 업데이트 할 수

+0

FWIW을 당신이 경우 다음의 .js는 도움이 될이

systemjs: { configFile: 'dev/systemjs.config.js', config: { map: { 'systemjs': 'node_modules/systemjs/dist/system.js', 'system-polyfills': 'node_modules/systemjs/dist/system-polyfills.js', 'es6-module-loader': 'node_modules/es6-module-loader/dist/es6-module-loader.js' } } } 
도 어쩌면

이 질문에서 구성 조각의 일부처럼 보인다 karma-systemjs 대신 karma-jspm을 사용하는 것을 고려해 볼 의향이 있습니다. 여기에 repo에 대한 링크가있는 질문이 있습니다. 현재 잘 작동하는 예제가 있습니다. http://stackoverflow.com/questions/39028639/karma-jspm-typescript-not-found- ts-js – artem

+0

@artem, repop – vlio20

+0

의 링크를 찾을 수 없습니다. https://github.com/Larchy/karma-jspm-typescript-coverage/tree/master – artem

답변

3
  1. 내가 처음으로 systemjs을 포함하도록 노력할 것이다 프레임 워크가 문서로 작성된대로
  2. typescript를 systemjs로로드하기 전에 컴파일하고 systemjs typescript 컴파일을 사용하지 마십시오. 그것은 카르마 테스트의 복잡성을 줄여 더 견고 해집니다.
  3. 스펙 파일에 포함 된 내용을 변경하면 문제가 해결되었습니다. 하지만
  4. 가 귀하의 basePath을두고 그것에 대해 확실하지 않다 ./이 시스템에 대한 404 오류

내 구성을 던진다이 루게릭 병은 당신의 system.js에 문제를

  • 확인 경로를 만들면서 Angular 2 + Karma + karma-jspm + karma-coverage + typescript report phantomJS failure

  • +0

    업장을 보여 주실 수 있습니까? 구성 파일뿐만 아니라? – vlio20

    +0

    다른 스레드에 대한 내 대답은 다음과 같습니다. http://stackoverflow.com/a/38979652/1512530 – DaSch

    +0

    어떤 nmp 모듈을 사용하고 있습니까? 나는 커버리지 모듈을 가질 필요가 없다. 그래서 무관 한 것은 무엇인가? – vlio20