我厂产品经过两年的打磨,目前功能基本稳定了,接下来的工作重点是用测试保证质量。除了继续丰富 E2E 测试,我还计划添加一些单元测试,用来确保一些重要函数和类正常工作。
所以就要选择框架。开始想试试近期比较热门的 Jest,找了些文章看了看,发现也没啥吸引我的特色,E2E 和 UI 我厂的 Navlang 目前独步江湖,无出其右者,考虑到以前用 Mocha 写过一些单元测试,所以决定继续用 Mocha。
但是已经很长时间没写了,所以想先研究下工具链。如果只是单文件的话,直接 mocha test.js
就好;如果测试文件用了 ESM,那么加上 @babel/register 也就够了,mocha —require @babel/register test.js
。
但是我们项目用到了 Vue,还用 Webpack 里的 resolve 定义了很多目录,所以为了能够兼容项目代码,我必须要 Mocha 结合 Webpack,用这个关键词一搜索,得到两个结论:mocha-webpack 和 mocha-loader。
前者已经一年多没更新了,而且要求 mocha@5,所以我就不想用了。转过头研究 mocha-loader,经过反复试验,加上阅读源码,我得出结论:
mocha-loader 的目标是在 Webpack 里集成测试,比如边开发边测试,并不是我想要的。我想要的是:打包测试内容,整合测试框架,方便用户在 CI 系统里集中进行测试。
所以我真正需要的,其实是:
- 创建一个独立的 webpack 配置文件,用来打包单元测试
- 打包后执行测试,返回测试结果
基本上,今天大半天的工作是白费了。mocha-loader 的作者应该把目的写在 README 里的……
发表回复