0

我已经使用 nyc 来获取我用 typescript 编写的 nodeJs api 的代码覆盖率。我已经为所有 api 和控制器编写了测试方法。Nyc 已配置并且可以正常工作以获取控制器的覆盖范围,但即使在所有 api 都进行了单元测试之后,nyc 也没有覆盖 API 代码块。

用于运行测试方法的脚本 -

"test":"mocha --timeout 99999 -r ts-node/register ./test/**/*.spec.ts --recursive --exit" "coverage":"nyc --reporter text-summary --记者 html --include src npm test"

src 包含所有控制器和 api 文件。

4

1 回答 1

1

typescript + mocha + nyc 的组合可能很难正确处理,因为许多小细节可能会弄乱正确的封面报告。

具体来说,您似乎缺少所需的文件扩展名和其他一些与打字稿相关的设置。

这是一个有效的 .nycrc.yml

extends: "@istanbuljs/nyc-config-typescript"

reporter:
  - html
  - lcovonly
  - clover
  # those 2 are for commandline outputs
  - text
  - text-summary
report-dir: coverage

我有一个非常详细的 typescript 完整示例,其中包括最新版本、linting 和质量设置以及一些更复杂的模拟和存根测试。它还涵盖了大多数设置在保留正确覆盖范围的同时不执行的完全非调用文件。也许它可以帮助你:)

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

还要注意 .mocharc.yml 用于所需的 mocha 配置。将这些与纽约市对齐确实很棘手。还包括 VsCode 启动配置。

于 2020-11-13T23:02:34.037 回答