Closed sinkcup closed 2 years ago
发现第一篇文章用的包支持 help
https://dev.to/rushankhan1/build-a-cli-with-node-js-4jbi
之前按照第二篇开发,结果过时了,既不支持 ES6,也不支持 help……
试图对 node cli 进行 test,发现跑不通。参考了 https://github.com/yargs/yargs/issues/1573
代码:
test('parse args', async () => {
process.argv.push('--format', 'clover');
process.argv.push('--output-format', 'text');
process.argv.push('test/data/clover.xml');
const spy = jest.spyOn(console, 'log');
await cli();
expect(spy).toHaveBeenCalledWith('64');
});
决定放弃,先做单元测试。
转念一想,只要是 命令 就可以做测试,可以用 shell 测试啊,比如上次用的 bats,缺点是:无法计算覆盖率
又一想,那是代码不可测啊:用了系统方法 process,应该用依赖注入。
目前不支持 --help,需要寻找成熟的包。
比如 https://www.npmjs.com/package/optionator