Unit testing 使用Resharper 7测试运行程序进行Jasmine测试的堆栈跟踪

Unit testing 使用Resharper 7测试运行程序进行Jasmine测试的堆栈跟踪,unit-testing,resharper,jasmine,Unit Testing,Resharper,Jasmine,如何让Resharper 7测试运行程序显示Jasmine测试的堆栈跟踪 我的设置是Resharper 7(内置Jasmine)testrunner和PhantomJs。执行任何失败测试时,错误消息始终以以下内容结束: Exception doesn't have a stacktrace 在1.6“薰衣草”版本的Phantom中,添加了在发生错误时打印stacktrace的功能 要复制此文件,只需创建一个mytest.js文件并向其中添加以下代码: describe("A suite", f

如何让Resharper 7测试运行程序显示Jasmine测试的堆栈跟踪

我的设置是Resharper 7(内置Jasmine)testrunner和PhantomJs。执行任何失败测试时,错误消息始终以以下内容结束:

Exception doesn't have a stacktrace
在1.6“薰衣草”版本的Phantom中,添加了在发生错误时打印stacktrace的功能

要复制此文件,只需创建一个mytest.js文件并向其中添加以下代码:

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

在有javascript(jasmine)单元测试的spec文件中,需要对正在测试的源代码的引用。 通常,您在SpecRunner.html中有这个文件,但是Resharper会滚动它自己的SpecRunner

将此参考行添加到XyzSpec.js文件的顶部

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

describe("Utils", function () {
    describe("when calculating quantity", function() {
...
//
描述(“Utils”,函数(){
描述(“计算数量时”,函数(){
...
让我几乎发疯,直到我开始在Resharper的spec runner中四处寻找


PS:如果出现新问题“Unit Test Runner未能加载测试程序集”,并且您使用Chrome作为默认浏览器,请在Resharper选项中更改javascript单元测试的浏览器。

对不起,我不使用Resharper,但我以前在phantomjs和jasmine ConsoleReporter中也遇到过同样的问题

我认为这可以归结为这样一个事实:jasmine不会为失败的期望抛出错误消息,只有在实际抛出错误时,phantomjs才会捕获堆栈(jasmine.js):

按如下方式更改该行,为我修复了它:

var err;
try { throw new Error(this.message); } catch(e) { err = e };
var trace = (params.trace || err);

当我记录这个问题时,Jetbrains Resharper团队得到了很好的响应。他们修复了这个问题,它出现在7.1版本的Resharper中,可以从他们的

下载。你可能想在这里问这个问题:或者在这里:你收到错误消息了吗?我只是在“异常没有堆栈跟踪”之前得到了“未定义”在Phantomjs和chrome中。对我来说也是一样。我在“异常没有堆栈跟踪”之前没有定义,但除此之外什么都没有。我已经有了对我的javascript文件的引用。如果我没有添加,我的测试就失败了。不幸的是,仍然没有堆栈跟踪,但我告诉了R#团队,他们已经为7.1版本制定了计划
var err;
try { throw new Error(this.message); } catch(e) { err = e };
var trace = (params.trace || err);