我试图弄清楚当我打破它们时调试单元测试的最佳方法。通常在以前的测试环境中,我可以在浏览器中运行测试并断点测试或代码,看看我的测试失败的原因。我似乎无法弄清楚如何用testacular做到这一点。有没有一种简单的方法来调试单元测试?
答案 0 :(得分:67)
在karma.conf.js
:
browsers = ['Chrome'];
在您失败的规范中:
it('spec', function() {
debugger; // This is like setting a breakpoint
// ...
});
现在,在Chrome的开发人员工具源标签中,您应该会看到调试程序停止执行。
答案 1 :(得分:47)
包括“browsers = ['Chrome'];”在你的karma.config文件中。
当Chrome打开时,您应该会在顶部看到“Karma - connected”,并在右上方显示“Debug”按钮。
单击此调试按钮,将打开“Karma DEBUG RUNNER”选项卡。然后,只需右键单击,检查元素,然后像平常一样进行调试。
答案 2 :(得分:9)
我找到了以下调试方法,不需要在代码中进行任何更改(比如添加“调试器”语句)
在karma配置文件中将“singleRun”设置为false,以便karma将在调试端口上侦听,您可以在浏览器中再次运行测试,启动下面给出的URL并调试:
转到捕获的浏览器并单击“调试”按钮(或打开
http://localhost:9876/debug.html
)并使用网络检查器查看 这是怎么回事。 (您可能需要刷新debug.html页面 在网络检查员打开后启动。)
答案 3 :(得分:0)
在您的控制台中,您应该通知it()语句中断的原因以及原因。例如:
Todos Add a new todo should add a new todo FAILED
expected todo.length to be 1 but was 0
但是,您可能会发现设置
很有用logLevel = LOG_DEBUG;
在你的karma.conf.js文件中。