如何为vscode扩展进行Coverage导出

时间:2017-07-04 16:17:23

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

我已经看过很多关于如何制作vscode扩展的教程。像:

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

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

我将所有测试都写在mocha中,并按照他们的文档建议捆绑在vscode中。

我试图进行实验,但我遇到了困难,是否有任何提示或方向可以继续让我的流程重新开始工作?

1 个答案:

答案 0 :(得分:0)

有效的答案在我对原始问题的评论中。但要简化和归结必须完成的工作,以及我个人采取的步骤。并非所有步骤都非常重要且必需,但这些步骤非常方便:

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

现在每次提交travis都会自己完成工作,我可以在我的自述文件中使用工作服横幅,以便快速了解我的覆盖范围。您可以使用gulp来观察更改并在本地构建/测试,并在UI中快速反馈测试所涵盖的行。

设置类似于列出的链接:

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

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