2013-07-12 187 views
8

我试图让茉莉花单元测试与ReSharper的测试运行运行AngularJS控制器,这样我就可以在VS 2012中的一个地方跑我的客户端和服务器端的测试AngularJS单元测试

我遇到ReSharper测试运行器失败的问题,并显示“Inconclusive:Test was not run”的消息。使用AngularJS Seed项目附带的测试运行器可以很好地运行相同的测试。

这里是我的简单测试进行故障排除:

/// <reference path="~/Scripts/angular/angular.js"/> 
/// <reference path="~/tests/test/lib/angular/angular-mocks.js"/> 
/// <reference path="~/Scripts/app/controllers.js"/> 

'use strict'; 

describe('controllers', function(){ 
    beforeEach(module('myApp.controllers')); 

    it('should ....', inject(function() { 
     expect(1).toEqual(1); 
    })); 
}); 

我怀疑它是与我的引用,因为如果我删除调用inject,我的测试运行良好。然而,inject是在angular-mocks.js中定义的(我正在引用它),所以我不确定问题是什么。

有什么建议吗?

回答

5

您对ReSharper跳过内联inject的预感是对的,它似乎期望function而不是解析文件以获取测试列表。我已经努力将inject s移动到beforeEachit的正文中,这使得ReSharper再次开心。顺便说一句,我还添加了参考jasmine.js(在其他参考之前)以摆脱ReSharper关于未定义的Jasmine全局变量的警告。

+3

请问您能分享一些代码吗? – Blowsie

+1

你在那里使用什么版本的茉莉花? – Ofiris

0

ReSharper设置文件jasmine.js全部引用后。 angular-mock.js不会找到茉莉花,会跳过创建window.module和window.injec函数

我创建了jasmine2.js并将其设置为第一个引用。我清空了jasmine.js并将其设置为第二参考。

毕竟我的测试确实有效