8

我正在尝试为使用 ReSharper 测试运行器运行的 AngularJS 控制器进行 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 (我正在引用)中定义,所以我不确定问题是什么。

有什么建议么?

4

4 回答 4

5

您对 ReSharper 内联绊倒的预感是正确的,当它解析文件以获取测试列表时inject,它似乎期望相反。function我已经通过将injects 移入beforeEach或移入 the 的主体来解决问题it,这让 ReSharper 再次感到高兴。顺便说一句,我还在顶部(在其他引用之前)添加了对jasmine.js的引用,以消除 ReSharper 关于未定义 Jasmine 全局变量的警告。

于 2013-08-07T20:16:27.607 回答
2

http://youtrack.jetbrains.com/issue/RSRP-383328的跟踪器上存在关于此 ReSharper 问题的问题- 您可以投票支持它进行修复。

于 2013-08-20T06:08:31.217 回答
0

看看这个页面。我禁用了“正在测试的影子复制程序集”选项,它起作用了。 测试方法不确定:未运行测试。错误?

于 2015-05-01T15:06:41.260 回答
0

ReSharper 在所有引用之后设置文件 jasmine.js。angular-mock.js 不会找到 jasmine 会跳过创建 window.module 和 window.injec 函数

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

毕竟我的测试确实有效

于 2016-08-04T06:37:29.300 回答