sinkcup / coverage-badge

create badge from test coverage reports
https://www.npmjs.com/package/test-coverage-badge
MIT License
0 stars 0 forks source link

nodejs cli:支持 help #7

Closed sinkcup closed 2 years ago

sinkcup commented 2 years ago

目前不支持 --help,需要寻找成熟的包。

比如 https://www.npmjs.com/package/optionator

sinkcup commented 2 years ago

发现第一篇文章用的包支持 help

https://dev.to/rushankhan1/build-a-cli-with-node-js-4jbi

之前按照第二篇开发,结果过时了,既不支持 ES6,也不支持 help……

image

sinkcup commented 2 years ago

试图对 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');
});

image

决定放弃,先做单元测试。

sinkcup commented 2 years ago

转念一想,只要是 命令 就可以做测试,可以用 shell 测试啊,比如上次用的 bats,缺点是:无法计算覆盖率

https://github.com/sinkcup/magic-version

sinkcup commented 2 years ago

又一想,那是代码不可测啊:用了系统方法 process,应该用依赖注入。