我想在ruby中有类似binding.pry的东西,基本上,我希望能够在我的代码中添加一行,并让调试器停在那里,而karma正在运行我的角度/茉莉花测试
it('runs my jasmine test', function () {
var a = true;
binding.pry // stops code and enters REPL prompt
expect(a).toBe(true);
});
结果将是一个提示
#
我可以在那个时间点对那个范围内可用的变量做些什么
# a = false;
然后我可以退出并继续执行。
# exit
就像使用开发工具进行调试一样,但我希望在浏览器环境之外和终端内部进行业力处理。 我也发现https://github.com/alidavut/locus,但它似乎没有在业力下工作。
答案 0 :(得分:3)
我不知道有什么方法可以在业力流程中启动repl ,但你可以做的只是写:
debugger;
在您要调试的位置。然后,如果您在执行该行时已经打开了浏览器的开发工具,则执行将暂停,您将能够使用可能足够的“监视表达式”。您可以访问调用堆栈和所有本地变量。您还可以在监视表达式中分配局部变量,并在恢复执行时保留新值。
我只在Chrome上测试了这个。我要做的是:
debugger;
语句放入。 在业力方面进行REPL需要更多努力,因为所有测试代码都在浏览器上执行。要从业力流程控制REPL,您需要设置事件以通过业务设置与浏览器通信的套接字进行通信。如果你这么倾向应该是可行的。 编辑:实际上,为了做到这一点,你仍然需要能够在特定声明中执行Javascript块执行,而我是非常确定debugger;
是唯一的方法。