2016-08-11 12 views
12

後に失敗しています。しかしRC5が突然来て、今ではこのコードは機能していません。 angular2 RC5にこのテストを移行するために私を助けてくださいテストは、私は私のテストのために、次の形式を使用していた角度2 RC5

Module ".... @angular/core/testing" has no exported member 'it'. 
 
Module ".... @angular/core/testing" has no exported member 'describe'. 
 
Module ".... @angular/core/testing" has no exported member 'expect'. 
 
Module ".... @angular/core/testing" has no exported member 'beforeEachProviders'. 
 
Module ".... @angular/compiler/testing" has no exported member 'TestComponentBuilder'. 
 
Module ".... @angular/compiler/testing" has no exported member 'ComponentFixture'.

: それは私に次のエラーがスローされます。

更新: 私はすでにRC5 release notesを読んでいますが、私の目標を達成する方法は何も私の心にはありません。

答えて

14

@ angular/core/testingで利用可能なジャスミンのインポートは削除されます。そうする前に、次の

のための輸入を削除します。

import { 
    beforeEach, 
    beforeEachProviders, 
    describe, 
    expect, 
    it, 
    inject, 
} from '@angular/core/testing'; 

/// <reference path="../../../typings/main/ambient/jasmine/index.d.ts" /> 
import { 
    inject, addProviders 
} from '@angular/core/testing'; 

後に参照パスは、ファイルの最初の行である必要があり、それはジャスミンのタイプ定義ファイルを指している必要があります。 (相対的な更新、つまり../../を何に更新する)ジャスミンタイプの定義を取得するには、ambientDevDependenciesに次の行を追加します。鉱山はこの

{ 
    "ambientDevDependencies": { 
    "angular-protractor": "registry:dt/angular-protractor#1.5.0+20160425143459", 
    "jasmine": "registry:dt/jasmine#2.2.0+20160412134438", 
    "selenium-webdriver": "registry:dt/selenium-webdriver#2.44.0+20160317120654" 
    }, 
    "ambientDependencies": { 
    "es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654" 
    } 
} 

のようになります。またうん、私もこれを持っていますが、理由は読書後、RC5にテストを移行する方法を知っています

import { TestBed } from '@angular/core/testing'; 
... 
describe('...',() => { 
    TestBed.configureTestingModule({ 
    providers: [ InMemoryDataService ] 
    }); 
    it(...); 
}); 
+0

*ジャスミンはグローバルな入力によってピックアップする必要があるので、* reference *インクルードが必要ないと思います。 –

+0

@ toepoke.co.uk angle-cliを使った私のプロジェクトの設定に基づいて、コンパイルは私がそれを参照するまで失敗するようです。 IDE(VsCode)も、記述するための参照を見つけることができなかったと訴えた。 – user6123723

+0

@filoxo答えを編集/更新できますか?ありがとう。 – user6123723

4

変更履歴を見てみましょう: https://github.com/angular/angular/blob/master/CHANGELOG.md

それはあなたが使用している、APIのように見える推奨されていません - パスと名前が変更されました。 :)例えば

コード:に変更

beforeEachProviders(() => [MyService]); 

  • TestComponentBuilderとComponentFixtureは、角度/コア/試験@に今
  • beforeEachProvidersあります:

    beforeEach(() => { 
        addProviders([MyService]); 
    }); 
    
+0

beforeEachProviders(() => [InMemoryDataService]); 

を変更彼らのリリースノート私はまだそれを行う方法を取得していない。 –

-1

既にリリースノートをお読みいただいている場合は、これは、APIパッケージのテストで多くの変更があります。

https://github.com/angular/angular/blob/master/CHANGELOG.md#breaking-changes

だから、私はまだRC5にテストを移行しようとしませんでした。しかし、新しいテストAPIへの変更についてのリンクが見つかりました。

https://ng2-info.github.io/2016/08/angular-2-rc-5/#テスティングapiに関する変更

は、このヘルプを願っています。

関連する問題