2016-09-05 22 views
11

Tôi đang cố gắng chạy một số thử nghiệm đơn vị trong vài ngày ngay bây giờ mà không thành công. Ứng dụng của tôi được viết bằng bản đánh máy (các bài kiểm tra đơn vị cũng được viết bằng bản ghi). Đây là tập tin cấu hình nghiệp của tôi:SystemJS + Karma + TypeScript - Không chạy thử nghiệm

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} 
    ] 
    }); 
}; 

Khi tôi chạy karma start tôi nhận được lỗi sau:

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! 

Nếu tôi thay đổi sở hữu trình duyệt Chrome, tôi nhận được lỗi sau:

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 

Đây là gói phụ thuộc có liên quan của package.json của tôi:

"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" 

Bất kỳ trợ giúp nào sẽ được đánh giá cao!

+0

FWIW nếu bạn sẵn sàng cân nhắc việc sử dụng karma-jspm thay vì karma-systemjs ở đây là câu hỏi với một liên kết đến một repo với hy vọng làm việc bây giờ ví dụ http://stackoverflow.com/questions/39028639/karma-jspm-typescript-not-found- ts-js – artem

+0

@artem, tôi không thể tìm thấy liên kết đến repo – vlio20

+0

đó là https://github.com/Larchy/karma-jspm-typescript-coverage/tree/master – artem

Trả lời

1

Cố gắng thêm tùy chọn bổ sung để cấu hình nghiệp

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

Sử dụng Node.js cuối cùng 6.5 và cập nhật phụ thuộc của bạn lên phiên bản mới nhất

3
  1. tôi sẽ cố gắng để bao gồm systemjs như đầu tiên khung như được viết trong tài liệu
  2. Biên dịch bản đánh máy trước khi tải nó bằng systemjs và không sử dụng biên dịch kiểu systemjs. Điều đó sẽ làm giảm độ phức tạp của các bài kiểm tra nghiệp của bạn khiến chúng trở nên vững chắc hơn
  3. Hãy thử thay đổi bao gồm thành sự thật cho các tệp thông số của bạn, điều đó đã giúp tôi giải quyết một số vấn đề. Nhưng tôi không chắc chắn về điều đó
  4. rời basePath tại ./ như als này chỉ làm cho rắc rối
  5. Kiểm tra đường dẫn đến system.js của bạn vì nó ném một 404 lỗi

cấu hình của tôi cho hệ thống .js trông như thế này

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' 
     } 
    } 
} 

có lẽ cũng có một số của các đoạn cấu hình từ câu hỏi này có thể giúp: Angular 2 + Karma + karma-jspm + karma-coverage + typescript report phantomJS failure

+0

Bạn có thể vui lòng cho thấy nghiệp của bạn không cấu hình tập tin là tốt? – vlio20

+0

Đó là câu trả lời của tôi cho chủ đề khác: http://stackoverflow.com/a/38979652/1512530 – DaSch

+0

Bạn có thể chỉ định mô-đun nmp nào bạn đang sử dụng không? Tôi không cần phải có một mô-đun bảo hiểm, vì vậy những gì là không thích hợp? – vlio20

Các vấn đề liên quan