Unit testing 使用Resharper 7测试运行程序进行Jasmine测试的堆栈跟踪
如何让Resharper 7测试运行程序显示Jasmine测试的堆栈跟踪 我的设置是Resharper 7(内置Jasmine)testrunner和PhantomJs。执行任何失败测试时,错误消息始终以以下内容结束: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
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);