我正在尝试为使用 ReSharper 测试运行器运行的 AngularJS Controller 进行 Jasmine 单元测试,以便我可以在 VS 2012 中的一个地方运行我的客户端和服务器端测试。
我遇到了一个问题,即 ReSharper 测试运行器失败并显示“不确定:测试未运行”消息。使用 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(我正在引用)中定义,所以我不确定问题是什么。有什么建议?
最佳答案
您对 ReSharper 被内联绊倒的预感 inject
是的,好像很期待function
相反,当它解析文件以获取测试列表时。我已经通过移动 inject
解决了问题s 进入 beforeEach
或进入正文it
这让 ReSharper 再次高兴起来。顺便说一句,我还在顶部(在其他引用之前)添加了对 jasmine.js 的引用,以摆脱 ReSharper 关于未定义 Jasmine 全局变量的警告。
关于使用 ReSharper 进行 AngularJS 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17618923/