8

VS 2012 内の 1 つの場所でクライアント側とサーバー側のテストを実行できるように、ReSharper テスト ランナーで実行されている AngularJS コントローラーの Jasmine 単体テストを取得しようとしています。

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への呼び出しを削除すると、テストが正常に実行されるため、参照に関係があると思われます。ただし、injectangular-mocks.js (参照している) で定義されているため、何が問題なのかわかりません。

助言がありますか?

4

4 に答える 4

5

ReSharper がインラインでつまずくというあなたの予感は正しいです。代わりに、ファイルを解析してテストのリストを取得するときにinject期待しているようです。function私はinjects を のいずれかbeforeEachまたは の本体に移動することで回避しました。これにより、 itReSharper は再び満足しました。ところで、未定義の Jasmine グローバルに関する ReSharper の警告を取り除くために、一番上 (他の参照の前) にjasmine.jsへの参照も追加しました。

于 2013-08-07T20:16:27.607 に答える
0

このページを見てください。「テスト中のシャドウコピーアセンブリ」オプションを無効にしましたが、機能しました。 テスト方法は決定的ではありません: テストは実行されませんでした。エラー?

于 2015-05-01T15:06:41.260 に答える
0

ReSharper は、すべての参照の後にファイル jasmine.js を設定します。angular-mock.js は jasmine を見つけられず、window.module および window.injec 関数の作成をスキップします

jasmine2.js を作成し、最初の参照として設定します。jasmine.js を空にして、2 番目の参照として設定しました。

すべてのテストが機能した後

于 2016-08-04T06:37:29.300 に答える