大多数时候,我希望测试套件像大多数系统一样运行和退出,因此我的karma.conf.js
具有以下设置:
autoWatch: false
singleRun: true
我的package.json
有:
"scripts": {
"test": "NODE_ENV=test ./node_modules/.bin/karma start"
}
我正在运行无头Chrome,因此这使我可以只运行yarn test
,效果很好。
但是有时候当我大量使用JS时,我想要一个更紧密的反馈循环。由于Karma使用的是真正的Web浏览器,因此我的测试甚至需要大约8秒钟的启动时间才能运行,这很烦人。
我知道Karma具有客户端/服务器模型来解决此问题,但是我不清楚如何运行它。如果我用singleRun
覆盖了yarn test --singleRun=false
,似乎启动了服务器并坐在那里等待运行测试。但是我无法弄清楚如何真正开始测试。我以为karma run
,但如果我尝试这样做,它也会坐在那儿什么也没做。
关于我能做的最好的事情就是也用yarn test --singleRun=false --autoWatch=true
启用自动监视。借助此功能,我可以随时保存一个测试文件,它可以运行测试套件。通常可以,但是我喜欢我的文本编辑器自动保存,因此有时在工作中会保存语法错误。理想情况下,我宁愿自己踢一下。