如何让 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);
});
});
抱歉,我不使用 Resharper,但我曾经在使用 phantomjs 和 jasmine ConsoleReporter 时遇到过同样的问题。
我认为这可以归结为这样一个事实: 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)