使用 yeoman 的 ReSharper Jasmine AngularJS 单元测试
Posted
技术标签:
【中文标题】使用 yeoman 的 ReSharper Jasmine AngularJS 单元测试【英文标题】:ReSharper Jasmine AngularJS unit-test using yeoman 【发布时间】:2014-01-11 17:46:48 【问题描述】:我正在尝试使用 Resharper 8.0.2 让 yeoman 生成的单元测试在 Visual Studio 中运行。
使用 yeoman,如果你只是生成一个控制器,你会得到这样的东西:
'use strict';
describe('Controller: MainCtrl', function ()
// load the controller's module
beforeEach(module('angularYeomanTestApp'));
var MainCtrl,
scope;
// Initialize the controller and a mock scope
beforeEach(function()
inject(function($controller, $rootScope)
scope = $rootScope.$new();
MainCtrl = $controller('MainCtrl',
$scope: scope
);
)
);
it('should attach a list of awesomeThings to the scope', function ()
expect(scope.awesomeThings.length).toBe(3);
);
);
我已经把this post的知识转移了,因为yeoman在inject语句之前没有生成匿名函数。
问题是我总是在每个测试中遇到错误,例如:
Inconclusive: Test wasn't run
Resharper 配置为使用 chrome 浏览器运行测试,并且 jasmine 在打开时似乎已正确包含在测试页面中,但测试页面为空!
使用 karma 运行测试,例如咕噜测试确实有效!
感谢您的帮助!
PS.:我正在使用:Visual-Studio-2013、Resharper 8.0.2、angularjs 1.2.6
【问题讨论】:
这是您的完整测试吗?您是否包含了对所有需要的 js 文件的引用?使用 resharper 为了运行测试,您必须在包含测试之前引用所有 js 文件。如果您拖动它们,vs 将为您创建它们。类似 ///Karma 和 Reshaper 彼此无关。您不必运行或安装 karma 即可运行 Resharper 测试。对于更清晰的测试,您必须拥有,正如我在上面的评论中指出的那样,您需要在每个测试文件中包含作为“参考”的所有文件。
【讨论】:
是否有可能包含所有测试的标准参考集? @Sentenza:是的,***.com/questions/3448119/… 我没有让它工作。我的参考文件包括 angular、jasmin 和要测试的服务以及 app.js 文件。但是还是不行……以上是关于使用 yeoman 的 ReSharper Jasmine AngularJS 单元测试的主要内容,如果未能解决你的问题,请参考以下文章
Yeoman 官网教学案例:使用 Yeoman 构建 WebApp