0

基本的な karma-jasmine テストを実行しようとしていますが、次のエラーが発生します。

Chrome 51.0.2704 (Windows 7 0.0.0) ERROR
  Uncaught TypeError: Unexpected anonymous System.register call.
  at D:/git/ui-components/jspm_packages/system.src.js:2891


Chrome 51.0.2704 (Windows 7 0.0.0): Executed 0 of 0 SUCCESS (0 secs / 0 secs)

テストも実行されていないようです。
フォルダ構成は次のとおりです。

  • components
    -[個々のコンポーネント] -
    単純なテストを含むtestsフォルダー
    -app.js(すべての子コンポーネントを呼び出すマスターコンポーネントを含む)

アプリケーションは正常に動作していますが、テストで多くの問題が発生しています。
どんな種類の助けも大歓迎です。

以下は私のpackage.jsonファイルです

{
  "name": "ui-components",
  "version": "1.0.0",
  "description": "POC",
  "main": "index.js",
  "scripts": {
    "install": "jspm install && typings install",
    "start": "gulp serve"
  },
  "repository": {
    "type": "git",
    "url": ""
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-typescript": "^2.12.2",
    "gulp-watch": "^4.3.5",
    "jasmine": "^2.4.2",
    "jasmine-core": "^2.4.1",
    "jspm": "^0.16.30",
    "karma": "^0.13.22",
    "karma-chrome-launcher": "^0.2.3",
    "karma-cli": "file:C:\\Users\\*********\\Downloads\\karma-cli-master",
    "karma-jasmine": "^0.3.6",
    "karma-jspm": "^2.0.2",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings": "^1.0.4"
  },
  "jspm": {
    "dependencies": {
      "angular": "github:angular/bower-angular@^1.5.0",
      "angular-route": "github:angular/bower-angular-route@^1.5.0",
      "bootstrap": "github:twbs/bootstrap@^3.3.6",
      "css": "github:systemjs/plugin-css@^0.1.20"
    },
    "devDependencies": {}
  }
}

karma.config.js ファイル

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', 'jspm'],
    files: [
      'components/**/*.js',
      'components/*.js',
      'components/tests/*.spec.js'
    ],
    exclude: [
    ],
    preprocessors: {
    },
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    concurrency: Infinity
  })
}

firstTest.spec.js ファイル

import angular from 'angular';

describe("Hello World Tests", () => {
    it("First", () => {
        expect("TestString").toEqual("");
    });
});

Index.html ファイル

<html ng-app="app">
    <head>
        <script src="jspm_packages/system.js"></script>
        <script src="config.js"></script>
        <link rel="stylesheet" href="jspm_packages/github/twbs/bootstrap@3.3.6/css/bootstrap.css" />
        <link rel="stylesheet" href="style.css" />
        <script>
                System.import("components/app.js");
        </script>
    </head>
    <body>
        <main-component></main-component>
    </body>
</html>

app.ts ファイル

import * as angular from 'angular'
import 'components/mainComponent/mainComponent'

angular.module("app", ['mainComponent']);
4

1 に答える 1

0

karma.config.js ファイルの JSPM 配列オブジェクトに .ts ファイルを渡す必要があることがわかりました。次のブロックにファイルを渡すことができませんでした。

files: [
      'components/**/*.js',
      'components/*.js',
      'components/tests/*.spec.js'
]`

代わりに、これが必要です。

jspm: {
  config: "config.js",
  packages: "jspm_packages/",
  loadFiles: ['components/**/*spec.js'],
  serveFiles: ['components/**/*.js']
},

うまくいけば、これは他の誰かに役立ちます。

于 2016-07-12T13:43:52.460 に答える