周末打算用 Karma 来给 blessing-trans(一个我用来练习 TypeScript 的项目,欢迎 star)进行测试。之前用的是 QUnit 和 node-qunit-phantomjs 来测试。但我的代码中使用了 HTML5 API 中的 localStorage 时,似乎 phantomjs 不支持,然后想试试用 Karma,因此遇到了几个坑,特此记录。

配置文件

我是通过 CLI 执行 karma init 来生成配置文件的,虽然在向导提示中 Karma 有询问我使用的是什么测试框架和什么浏览器,但是在生成出来的文件中仅仅是指定了测试框架和浏览器:

sp20170506_214636.png

sp20170506_214642.png

这样是不够的,还需要我们安装相应的插件。以 QUnit 和 Chrome 为例,我们要安装 karma-qunit 和 karma-chrome-launcher,并在配置文件中的 plugins 中添加这些插件:

sp20170506_215056.png

加载 QUnit

如果要在工程目录中通过执行 karma start 来开始测试,那么应该在全局环境中安装 Karma,并且在全局环境中安装 QUnit,否则它将提示 Cannot find module 'qunitjs' 的错误,如图:

sp20170506_201307.png


总的来说,Karma 还是不错的,要不试试抛弃之前的 node-qunit-phantomjs?