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过。 我要做的是:
- 把
debugger;
声明。 - 开始业力。
- 打开Chrome开发工具。
- 保存一个观看的业力文件(所以现在的testing将再次运行,开发工具已经打开)。
- 利润!
因为所有的testing代码都是在浏览器上执行的,所以在业力方面做REPL需要更多的努力。 为了从业力stream程中控制REPL,你需要设置事件来通过业力设置与浏览器对话的套接字进行通信。 如果你这么倾向,应该可以做到。 编辑:实际上,要做到这一点,你仍然需要能够在一个特定的语句,使JavaScript块执行,我敢肯定, debugger;
是做到这一点的唯一方法。