如何进行vscode扩展的覆盖率导出

mun*_*764 5 unit-testing code-coverage typescript visual-studio-code vscode-extensions

我看过很多教程,如何进行vscode扩展。喜欢:

https://code.visualstudio.com/docs/extensions/testing-extensions

而且有很多教程如何进行coverage导出,还有很多方法,但是我没有看到很好的示例,这些示例可以遵循其文档中的示例并使用vscode扩展(它们需要extensionHost而不是nodejs)。

我把所有的测试都写在了摩卡咖啡中,这是他们的文档所建议的捆绑在vscode中的。

我尝试进行实验,但遇到了麻烦,是否有任何提示或指示可以继续并使我的过程重新开始?

mun*_*764 1

有效的答案在我原来问题的评论中。但为了简化和总结必须要做的事情,以及我个人采取的步骤。并非所有步骤都是真正必要和必需的,但这些步骤使其非常方便:

  • 将 istanbul、istanbul-coveralls、gulp、gulp-json-editor、coveralls 安装到我的包中作为 DEV 依赖项
  • 将 MS 提供的用于 vscode 扩展测试的伊斯坦布尔测试运行器包含到我的测试中
  • 修改测试以运行 istanbul runner 而不是直接运行 mocha runner (测试本身可以保持原样)。
  • 附加对伊斯坦布尔跑步者的引用现在我必须阅读 coverconfig.json 以了解如何进行覆盖本身(要忽略哪些部分,源代码在哪里,输出结果在哪里,结果应该是什么格式等......)。
  • 添加了 gitignore 和 vscode 项目的覆盖范围,这样它们就不会在 UI 中惹恼我,也不会污染存储库。
  • 添加了一些 Visual Studio 启动器/任务,使我更容易从 UI 触发它们
  • 安装了 vscode 插件以显示排水沟中的覆盖范围:https://marketplace.visualstudio.com/items? itemName=ryanluker.vscode-coverage-gutters 然后将 "lcov.path": [ "coverage/ lcov.info" ](或您将拥有线路覆盖范围的任何位置),以便插件可以直接在 UI 中读取并显示覆盖范围。
  • 设置 gulp 删除旧的覆盖率结果并在每次运行时启动新的覆盖率结果
  • 添加了用于常规测试和覆盖范围变体的 npm 脚本
  • 更改了 travis 步骤,因此现在正在运行覆盖变体,而不是通用的非覆盖变体。添加了脚本步骤,以便运行 coveralls 模块并将结果从coveralls/lcov.info 广播到https://coveralls.io/网站。(我认为需要登录并进行首次设置才能使其在他们的网站上运行)

现在,在每次提交时,特拉维斯都会自行完成工作,我可以在自述文件中使用工作服横幅来快速浏览我的覆盖范围。您可以使用 gulp 来观察它的更改并在本地构建/测试,并在 UI 中快速反馈您的测试覆盖了哪些行。

设置类似于列出的链接:

https://github.com/Microsoft/vscode-mssql

https://github.com/kenhowardpdx/vscode-gist/pull/10