2016-12-30 5 views
2

ユニットテストで初心者です。私はtypescriptでangularjsを使っています。ユニットテストのために私はジャスミンと大胆を使用していますが、私はエラーを満たす「にReferenceError:変数が見つかりません:角度VS2015でジャスミンとチャツパを使ったユニットテストtypescript

テストファイルをなど

//File:test.ts 
///<chutzpah_reference path="../Scripts/angular.js"/> 
///<chutzpah_reference path="../Scripts/angular-mocks.js"/> 
///<chutzpah_reference path="../Scripts/jasmine/jasmine.js"/> 
///<reference path="../scripts/typings/angularjs/angular.d.ts"/> 
///<reference path="../scripts/typings/angularjs/angular-mocks.d.ts"/> 
///<reference path="../scripts/typings/jasmine/jasmine.d.ts"/> 
///<reference path="../controller/testController.ts"/> 

module app { 
    describe("testwithjasmine",() => { 
     var testController: Testcontroller; 
     beforeEach(()=> { 
      testController = new Testcontroller(); 
     }) 
     //This test OK 
     it("Test controller",() => { 
      expect(testController.tilte).toBe("title"); 
     }) 
    }) 

    //Error with case below 
    describe("testInject",() => { 
     var scope, controller; 
     beforeEach(angular.mock.module("app")); 
     beforeEach(() => inject(($controller, $scope) => { 
      scope = {}; 
      controller = $controller('testController', { $scope: scope }); 
     })); 
     it("test contrller2",() => { 
      expect(scope.title).toEqual("title"); 
     }) 
    }) 
} 

chutzpah.jsonコンテンツ

{ 
"Compile": { 
    "Mode": "External", 
    "Extensions": [".ts"], 
    "ExtensionsWithNoOutput": [".d.ts"] 
    }, 
    "References": [ 
    { 
     "Includes": [ 
     "*/Controller/*.ts" 
     ], 
     "Excludes": [ 
     "*/Scripts/typings/jasmine/*.d.ts", 
     "*/scripts/typings/angularjs/*.d.ts" 
     ] 
    } 
    ], 
    "Tests": [ 
    { 
     "Includes": [ "*/Test/*.ts" ], 
     "Excludes": [ 
     "*/Scripts/Tests/*.d.ts" 
     ] 

    } 
    ] 
} 

提案がありますか? ありがとう!

+0

別の行: '*/Scripts/angular.js'の後に追加してください。 –

+0

ありがとう@SlavaUtesinov" */Scripts/angular.js "を追加しましたが、動作しません。 – mrlive

答えて

0

テストがtypescriptで書かれている場合、chutzpah_referenceは機能しません(空の内容を返します)。

別のWebアプリケーション(例:localhost:9090)で* .jsファイルをホストし、カスタムharnassファイル(VS> R#>オプション>ツール>ユニットテスト> JavaScriptテスト)を作成し、スクリプトタグライブラリスクリプトをインクルードします。

<script src="http://localhost:9090/lib/angular.js" ></script> 

R#を使用しようとすると、悲惨な結果が得られませんでした。コモンズはあらゆる種類の制限のために動作しません(カスタムハルナスを使用することは助けになりません)。

私がVS内で知っている最良の代替案(ただしR#はありません)は、すべてのスクリプトを含むカスタムhtmlファイルを使用し、「手動で」ファイルをホストすることです。

個人的に私はresharperまたはVSを必要としない他の選択肢を探しています。

+0

ありがとう@Ibrahimベンサラ、私はtypescriptでコントローラをテストすることについての例を教えてくれますか?私は仕事のチュートリアルを見つけることができません。 – mrlive

関連する問題