1

私たちは数日間髪を引っ張っていますが、実際の問題を把握することはできません. コード カバレッジを拡大するためにテストベンチを作成したかったのですが、これは予想したほど簡単ではありませんでした。

正しいゾーン ファイルを含めた後、Angular から QuickStart を調べたところ、TestBed.initTestEnvironment を呼び出す必要があることがわかりました。インポートしたパラメーターが必要です。

import * as browserTesting from '@angular/platform-browser-dynamic/testing';


TestBed.initTestEnvironment(
   browserTesting.BrowserDynamicTestingModule,
    browserTesting.platformBrowserDynamicTesting()
);

ただし、カルマ (ジャスミンを使用) を介してこれを実行しようとするとすぐに、404 に遭遇します。

Running "karma:single" (karma) task
Verifying property karma.single exists in config...OK
File: [no files]
Options: background=false, client={}
20 12 2016 13:22:25.757:INFO [karma]: Karma v0.13.22 server started at http://localhost:9876/
20 12 2016 13:22:25.764:INFO [launcher]: Starting browser Chrome
20 12 2016 13:22:26.439:INFO [Chrome 54.0.2840 (Linux 0.0.0)]: Connected on socket cuixl-0soveFUA_PAAAA with id 58970475
20 12 2016 13:22:26.711:WARN [web-server]: 404: /base/jspm_packages/npm/@angular/compiler@2.3.0/bundles/compiler-testing.umd.js/index.js
20 12 2016 13:22:26.713:WARN [web-server]: 404: /base/jspm_packages/npm/@angular/core@2.3.0/bundles/core-testing.umd.js/index.js
20 12 2016 13:22:26.714:WARN [web-server]: 404: /base/jspm_packages/npm/@angular/platform-browser@2.3.0/bundles/platform-browser-testing.umd.js/index.js
Chrome 54.0.2840 (Linux 0.0.0) ERROR
  Error: (SystemJS) XHR error (404 Not Found) loading /home/arend/Documents/Projects/Barco/opspace/barco-opspace/jspm_packages/npm/@angular/compiler@2.3.0/bundles/compiler-testing.umd.js/index.js
    Error: XHR error (404 Not Found) loading /home/arend/Documents/Projects/Barco/opspace/barco-opspace/jspm_packages/npm/@angular/compiler@2.3.0/bundles/compiler-testing.umd.js/index.js
        at XMLHttpRequest.wrapFn [as _onreadystatechange] (/home/arend/Documents/Projects/Barco/opspace/barco-opspace/jspm_packages/npm/zone.js@0.7.2/dist/zone.js:729:25) [<root>]
        at Zone.runTask (/home/arend/Documents/Projects/Barco/opspace/barco-opspace/jspm_packages/npm/zone.js@0.7.2/dist/zone.js:135:41) [<root> => <root>]
        at XMLHttpRequest.ZoneTask.invoke (/home/arend/Documents/Projects/Barco/opspace/barco-opspace/jspm_packages/npm/zone.js@0.7.2/dist/zone.js:285:27) [<root>]
    Error loading /home/arend/Documents/Projects/Barco/opspace/barco-opspace/jspm_packages/npm/@angular/compiler@2.3.0/bundles/compiler-testing.umd.js/index.js as "./bundles/compiler-testing.umd.js/index" from /home/arend/Documents/Projects/Barco/opspace/barco-opspace/jspm_packages/npm/@angular/compiler@2.3.0/testing.js

「jspm_packages/npm/@angular/compiler@2.3.0/testing.js」を見ると、間違った情報が含まれていることがすぐにわかりました。

module.exports = require('./bundles/compiler-testing.umd.js/index');

期待される代わりに:

module.exports = require('./bundles/compiler-testing.umd');

これを手動で修正すると、すべてが完全に機能します。私の質問: JSPM や誰かが間違った testing.js ファイルを生成するのを防ぐにはどうすればよいですか?

私たちの考えは、何らかの理由で、jspm が compiler-testing.umd.js ファイルをフォルダーと見なし、それに /index を追加するというものです。

* config.js 経由で角度ファイルを含めました: *

System.config({
  defaultJSExtensions: true,
  transpiler: "typescript",
  paths: {
    "github:*": "jspm_packages/github/*",
    "npm:*": "jspm_packages/npm/*"
  },

  map: {
    "@angular/common": "npm:@angular/common@2.3.0",
    "@angular/compiler": "npm:@angular/compiler@2.3.0",
    "@angular/core": "npm:@angular/core@2.3.0",
    "@angular/core/testing": "npm:@angular/core@2.3.0/bundles/core-testing.umd.js",
    "@angular/forms": "npm:@angular/forms@2.3.0",
    "@angular/http": "npm:@angular/http@2.3.0",
    "@angular/http/testing": "npm:@angular/http@2.3.0/bundles/http-testing.umd.js",
    "@angular/platform-browser": "npm:@angular/platform-browser@2.3.0",
    "@angular/platform-browser-dynamic": "npm:@angular/platform-browser-dynamic@2.3.0",
    "@angular/platform-browser-dynamic/testing": "npm:@angular/platform-browser-dynamic@2.3.0/bundles/platform-browser-dynamic-testing.umd.js",
    "@angular/router": "npm:@angular/router@3.3.0",
4

1 に答える 1