如何生成vscode TypeScrip扩展覆盖报告 [英] How do a generate vscode TypeScript extension coverage report

查看:23
本文介绍了如何生成vscode TypeScrip扩展覆盖报告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于使用TypeScrip生成的VSCode扩展,似乎无法使用coveralls生成覆盖率报告。

目前,我正在将测试用例添加到我们的项目https://github.com/PicGo/vs-picgo/pull/42,我已经找到了几种报告覆盖率的方法,但没有一种方法适合我。

使用自定义TestRunner

The official documentation很少提到定制测试运行器,但我找到了一个帖子here。当我使用F5启动Extension Test时,它可以工作,但当我在控制台中运行npm run test时,它不工作(根本没有覆盖率输出)。

我也试着了解博文中的自定义运行器(源代码),但我发现我无能为力,因为我不知道它为什么会起作用。

使用nyc

nyc与摩卡是非常强大的,但我们不能利用它。当我运行nyc ./node_modules/vscode/bin/test时,我将获得0%的覆盖率:

我搜索了nyc的问题页,关于TS项目存在很多相同的0%覆盖率问题,但没有一个与我们的环境相同。主要区别在于他们使用mocha进行测试,而不是像VSCode的./node_modules/vscode/bin/test脚本那样,它将创建一个新的进程来运行测试js文件。我不知道该怎么处理这件事。

我搜索了所有问题(mocha、tyc、伊斯坦布尔、vscode等),几乎没有(我没有找到任何😭)vscode类型脚本正在使用覆盖报告供我复制。所以我的问题是:我如何获得VSCode TS扩展的覆盖报告?

推荐答案

添加自定义测试运行器

有关详细信息,请参阅this post,您只需将test runner code复制到项目的test/index.ts文件。

演示Azure管道配置

variables:
  system.debug: true
jobs:
  - job: Windows
    pool:
      name: Hosted VS2017
      demands: npm
    steps:
      - task: NodeTool@0
        displayName: 'Use Node 12.3.1'
        inputs:
          versionSpec: 12.3.1
      - task: Npm@1
        displayName: 'Install dependencies'
        inputs:
          verbose: false

      - task: Npm@1
        displayName: 'Compile sources and run tests'
        inputs:
          command: custom
          verbose: false
          customCommand: 'test'

      # https://stackoverflow.com/questions/45602358/lcov-info-has-absolute-path-for-sf
      - script: 'sed -i -- 's/..\..\//g' coverage/lcov.info && npm run coveralls'
        displayName: 'Publish code coverage'  
        env:
          COVERALLS_SERVICE_NAME: $(COVERALLS_SERVICE_NAME)
          COVERALLS_REPO_TOKEN: $(COVERALLS_REPO_TOKEN)

      - script: 'npm install -g vsce && vsce package'
        displayName: 'Build artifact'
      - task: CopyFiles@2
        inputs:
          contents: '*.vsix'
          TargetFolder: '$(Build.ArtifactStagingDirectory)'
      - task: PublishBuildArtifacts@1
        inputs:
          pathtoPublish: '$(Build.ArtifactStagingDirectory)'
          artifactName: vs-picgo-dev-build
trigger:
  branches:
    include:
    - '*'  # must quote since "*" is a YAML reserved character; we want a string
pr:
- dev*

请注意,您必须使用sed删除lcov.infoSF路径的....前缀:

之前:

SF:....srcvs-picgoindex.ts

之后:

SF:srcvs-picgoindex.ts

演示项目:https://github.com/PicGo/vs-picgo

这篇关于如何生成vscode TypeScrip扩展覆盖报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆