3

Resharper 7 テスト ランナーに Jasmine テストのスタック トレースを表示するにはどうすればよいですか。

私のセットアップは、Resharper 7 (Jasmine でビルド) テストランナーと PhantomJs です。失敗したテストを実行すると、エラーメッセージは常に次で終わります。

Exception doesn't have a stacktrace

Phantom の 1.6 "Lavender" バージョンでは、エラーが発生したときにスタック トレースを出力する機能が追加されました。

これを複製するには、mytest.js ファイルを作成し、次のコードを追加します。

describe("A suite", function() {
  it("contains spec with an expectation", function() {
    expect(true).toBe(false);
  });
});
4

3 に答える 3

7

申し訳ありませんが、私はResharperを使用していませんが、以前はphantomjsとjasmineConsoleReporterで同じ問題に直面していました。

要約すると、jasmineは期待に失敗した場合にエラーメッセージをスローせず、スタックは実際にエラーがスローされた場合にのみphantomjsによってキャプチャされます(jasmine.js)。

jasmine.ExpectationResult = function(params) {
...
var trace = (params.trace || new Error(this.message));
};

その行を次のように変更すると、修正されました。

var err;
try { throw new Error(this.message); } catch(e) { err = e };
var trace = (params.trace || err);
于 2012-10-19T22:25:13.660 に答える
5

javascript (ジャスミン) の単体テストがある仕様ファイルでは、テスト対象のソースへの参照が必要です。通常、これは SpecRunner.html にありますが、Resharper は独自の SpecRunner をロールします。

この参照行を XyzSpec.js ファイルの先頭に追加します

/// <reference path="/js/path-goes-here/your-file-here.js" />

describe("Utils", function () {
    describe("when calculating quantity", function() {
...

Resharper のスペック ランナーを調べ始めるまで、私はほとんど気が狂いそうになりました。

PS: 「Unit Test Runner がテスト アセンブリの読み込みに失敗しました」という新しい問題が発生し、Chrome をデフォルトのブラウザーとして使用している場合は、Resharper オプションで JavaScript 単体テスト用のブラウザーを変更してください。

于 2012-08-07T15:41:30.897 に答える
3

問題を記録したところ、Jetbrains Resharper チームから良い反応がありました。彼らはそれを修正し、 EAP サイトからダウンロードできる Resharper の 7.1 リリースに含まれています。

于 2012-10-26T16:46:39.520 に答える