使用testacular(现在的业力)在浏览器中调试

时间:2013-04-09 16:02:37

标签: angularjs karma-runner

我试图弄清楚当我打破它们时调试单元测试的最佳方法。通常在以前的测试环境中,我可以在浏览器中运行测试并断点测试或代码,看看我的测试失败的原因。我似乎无法弄清楚如何用testacular做到这一点。有没有一种简单的方法来调试单元测试?

4 个答案:

答案 0 :(得分:67)

  1. karma.conf.js

    browsers = ['Chrome'];
    
  2. 在您失败的规范中:

    it('spec', function() {
        debugger; // This is like setting a breakpoint
        // ...
    });
    
  3. Run Karma。
  4. 转到新打开的Chrome浏览器,打开控制台并刷新页面。
  5. 现在,在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文件中。