2016-12-30 66 views
2

茉莉和放肆我在单元测试的新手,我使用angularjs与打字稿。单元测试我使用茉莉和放肆,但我遇到错误“的ReferenceError:找不到变量:角单元测试打字稿在2015年VS

测试文件如

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

尝试在'“*/Controller/*。ts”'后面添加另一行:'*/Scripts/angular.js' –

+0

谢谢@SlavaUtesinov我添加了“*/Scripts/angular.js”但不起作用。 – mrlive

回答

0

chutzpah_reference不工作(返回空内容)。我最终在一个单独的web应用程序(如localhost:9090)中托管我的* .js文件,还创建了自定义harnass文件(VS> R#> Options> Tools> Unit testing> JavaScript Tests)并添加了脚本标记包括库脚本。

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

任何试图使用R#的尝试都失败了,例如, commonjs不会因为各种限制而工作(甚至不会帮助您使用自定义harnass)。

我知道的内VS(但无R#)是使用自定义的HTML文件,其中包括所有脚本和托管文件“手动” A最佳替代品。

个人而言,我是在寻找其他替代方案,这并不需要ReSharper的,甚至VS.过程

+0

谢谢@Ibrahim ben salah,你能给我一个关于打字机测试控制器的例子。我找不到任何工作教程。 – mrlive