【问题标题】:Debugging jasmine tests with resharper and phantom js使用 resharper 和 phantom js 调试 jasmine 测试
【发布时间】:2013-09-06 07:26:51
【问题描述】:

类似的问题已经在一段时间前被问过How do you debug Jasmine tests with Resharper? 那里的建议对我来说并不真正有用(在测试代码中放置debugger;)。每次运行测试时,都会打开一个新的浏览器窗口,并且线程会通过调试器跳转。有什么办法让它工作吗?还有有什么方法可以用 phantom runner 和 Resharper 调试 jasmine 测试?

提前致谢

【问题讨论】:

  • 您是否尝试过我的alternative solution,您在浏览器中进行调试。虽然不知道如何使用幻像进行调试。
  • 嗨,Torbjörn,是的,这确实有效!您可以将此评论添加为答案,以便我标记它)

标签: unit-testing debugging resharper jasmine phantomjs


【解决方案1】:

要在浏览器中调试,请将以下代码添加到您的 js 测试文件中。

jasmine.getEnv().currentRunner_.finishCallback = function () {};

Resharper 不会收到测试已完成的通知,因此我们可以在打开的浏览器(我使用 chrome)中设置调试断点并按 F5 页面。

完成后在 resharper testrunner 窗口中停止测试。

编辑:
从 Jasmine 2.0 开始你需要使用:

ReSharperReporter.prototype.jasmineDone = function () { };

【讨论】:

  • 这很酷,但答案是 chrome 而不是 PhantomJS
  • 另外,如果测试在 TypeScript 文件中,访问 ReSharperReporter 全局变量时会出错。一种解决方法是使用如下语法:window['ReSharperReporter'].prototype.jasmineDone = function () { };
  • 非常感谢,我希望能在几个月前找到这个,当时我花了几天时间研究如何解决它。
【解决方案2】:

Jason 的回答真的很有帮助。但我想补充一点,您必须在 IE 中启用脚本调试:Internet 选项 -> 高级 -> 取消选中“禁用脚本调试(Internedt Explorer)”。
然后你可以把 debugger 放到你的 js 中,它会弹出 'Visual Studio Just-In-Time Debugger' 弹出窗口。

【讨论】:

    【解决方案3】:

    我有调试器;通过在 ReSharper 选项中将 IE 11 设置为我的测试浏览器来工作。很酷的是,您可以在 Visual Studio 版本的代码中设置断点,并使用 Visual Studio 进行设置和调试。你真的不需要与浏览器交互。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-19
      • 2017-11-22
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      相关资源
      最近更新 更多