unit-testing - 如何为 vscode 扩展做 Coverage 导出

标签 unit-testing typescript visual-studio-code code-coverage vscode-extensions

我看过很多关于如何制作 vscode 扩展的教程。喜欢:

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

并且有很多教程如何进行覆盖率导出,有很多方法可以做到这一点,但我没有看到很好的例子可以遵循他们文档中的例子并使用 vscode 扩展(他们需要 extensionHost 而不是节点)。

我有所有的测试都是用 mocha 编写的,按照他们的文档的建议,它被捆绑在 vscode 中。

我尝试进行实验,但遇到困难,是否有任何提示或指示可以让我继续并让我的流程再次运行?

最佳答案

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

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

现在,在每次提交时,Travis 都会自己完成工作,我可以在自述文件中使用工作服横幅来快速了解我的报道有多好。您可以使用 gulp 来观察它的变化并在本地构建/测试,并在 UI 中获得快速反馈您的测试涵盖了哪些行。

设置类似于列出的链接:

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

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

关于unit-testing - 如何为 vscode 扩展做 Coverage 导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910485/

相关文章:

unit-testing - App Engine 本地单元测试不同实例 [GO]

c# - 对 ASP.NET 2.0 网页进行单元测试的最佳方法是什么?

java - 单元测试resteasy时未注入(inject)@Context对象

javascript - 如何在 JavaScript 文件中引用导出的 TypeScript 类?

javascript - 每个单词的第一个字母大写并处理拉丁字符

php - Intellisense 在带有 MYSQL 的 Visual Studio Code 中无法正常工作

visual-studio-code - VSCode Extension API-识别文件或文件夹,在资源管理器上下文菜单中单击

java - 如何使用简单的模拟对其余调用进行单元测试

javascript - GraphQL 解析器奇怪地将某些字段返回为 null

git - 除非手动保存文件,否则 VSCode git 不会检测到更改