REPL工具angular/茉莉/业力

我想在ruby中有类似binding.pry的东西,基本上,我想能够添加一行到我的代码,并有一个debugging器停在那里,而业力运行我的angular度/茉莉花testing

it('runs my jasmine test', function () { var a = true; binding.pry // stops code and enters REPL prompt expect(a).toBe(true); }); 

结果将是一个提示

#

我可以在那个时间点对那个范围内的variables做些事情

# a = false;

然后我可以退出并继续执行。

# exit

就像使用开发工具进行debugging一样,但是我希望在浏览器环境之外,以及在业务stream程之内。 我也发现https://github.com/alidavut/locus ,但它似乎不在业力下的业力。

我不知道有什么办法可以在业力stream程中启动一个repl,但是你可以做的仅仅是写出:

 debugger; 

在你想debugging的地方。 然后, 如果在执行该行时已经打开了浏览器的开发工具 ,则执行会暂停,您将可以使用“监视expression式”,这对您来说可能是足够的。 您可以访问调用堆栈和所有本地variables。 您也可以分配到监视expression式中的局部variables,当您恢复执行时,新值将保持不变。

我只在Chrome上testing过。 我要做的是:

  1. debugger; 声明。
  2. 开始业力。
  3. 打开Chrome开发工具。
  4. 保存一个观看的业力文件(所以现在的testing将再次运行,开发工具已经打开)。
  5. 利润!

因为所有的testing代码都是在浏览器上执行的,所以在业力方面做REPL需要更多的努力。 为了从业力stream程中控制REPL,你需要设置事件来通过业力设置与浏览器对话的套接字进行通信。 如果你这么倾向,应该可以做到。 编辑:实际上,要做到这一点,你仍然需要能够在一个特定的语句,使JavaScript块执行,我敢肯定, debugger; 是做到这一点的唯一方法。