0

我尝试为我的项目设置 Istanbul/Nyc/Mocha 以进行测试覆盖,虽然我能够成功运行 Nyc,但我只能看到一些文件被拾取以进行测试覆盖,而不是我拥有的所有 .ts 文件。

所以当我跑步时

npm run coverage 

我明白了

-----------------------|---------|----------|---------|---------|-------------------
File                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-----------------------|---------|----------|---------|---------|-------------------
All files              |       0 |      100 |     100 |       0 |                  
 develop-potta         |       0 |      100 |     100 |       0 |                  
  swagger.ts           |       0 |      100 |     100 |       0 | 1                
 develop-potta/models  |       0 |      100 |     100 |       0 |                  
  students.ts          |       0 |      100 |     100 |       0 | 1                
  swaggerDefinition.ts |       0 |      100 |     100 |       0 | 1                
 develop-potta/routes  |       0 |      100 |     100 |       0 |                  
  routescontroller.ts  |       0 |      100 |     100 |       0 | 4-5              

这仅涵盖了我大约 50% 的代码库。例如,我有一个 develop-potta/DBConnection/OracleConnection.ts,它也是一个 ts 文件,我的脚本没有提取该文件。我无法弄清楚为什么?会不会是某种命名约定?难道是我没有导出那些模块?

4

1 回答 1

1

Typescript + mocha + nyc 可能很挑剔。尤其是 all: true 设置会严重影响覆盖范围。但是正如您提到的,很难将其覆盖所有文件。我的模板回购涵盖了这些情况。也许它可以帮助你。

https://github.com/Flowkap/typescript-node-template

如果您只对覆盖感兴趣,请检查 .ncyrc.yml 和 mocharc.yml 以及 package.json 中的调用配置。还包括 VsCode 启动配置。

于 2020-11-13T23:12:48.460 回答