50

当我破坏单元测试时,我试图找出调试单元测试的最佳方法。通常在以前的测试环境中,我可以只在浏览器中运行测试,然后对测试或代码进行断点,然后查看测试失败的原因。我似乎无法弄清楚如何用睾丸来做到这一点。有没有一种简单的方法来调试单元测试?

4

4 回答 4

67
  1. karma.conf.js

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

    it('spec', function() {
        debugger; // This is like setting a breakpoint
        // ...
    });
    
  3. 运行业力。
  4. 转到新打开的 Chrome 浏览器,打开控制台并刷新页面。

现在,在 Chrome 的开发者工具源选项卡中,您应该会看到在调试器处停止执行。

于 2013-05-24T02:55:35.193 回答
48

包括“浏览器 = ['Chrome'];” 在您的 karma.config 文件中。

Chrome 打开时,您应该会在顶部看到“Karma - 已连接”,右上角有一个“调试”按钮。

单击此调试按钮,将打开“Karma DEBUG RUNNER”选项卡。然后,只需像往常一样右键单击、检查元素并进行调试。

于 2013-07-14T22:48:57.320 回答
9

我发现以下调试方法不需要对代码进行任何更改(例如添加“调试器”语句)

在 karma 配置文件中将“singleRun”设置为 false,这样 karma 将在调试端口上侦听,您可以在浏览器中再次运行测试,启动下面给出的 URL 并进行调试:

转到捕获的浏览器并单击“调试”按钮(或打开 http://localhost:9876/debug.html)并使用网络检查器查看发生了什么。(您可能需要刷新 debug.html 页面才能在 Web 检查器打开后启动。)

于 2014-02-11T12:33:06.970 回答
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 文件中。

于 2013-04-23T20:15:20.177 回答