柏树覆盖不适用于vue-property-decorator

时间:2019-11-14 02:27:52

标签: typescript code-coverage cypress instabug

我想在Cypress的前端进行代码覆盖。目前,柏树推荐伊斯坦布尔进行报道。不幸的是,我不能在下面的堆栈中使用它:

  • vue-property-decorator
  • 柏树
  • 伊斯坦布尔代码覆盖范围。
  • 打字稿。

由于:  -我找不到让ts-loader使用istanbul的方法,因为istanbul-intementer-loader uses babel under the hood  -babel-loader不像打字稿那样支持装饰器,即breaks vue-property-decorator。在打字稿中使用vue而不使用vue-property-decorator不是那么整洁...

以下是一些有用的链接:

Here's回购和快速概述:

  • git clone https://github.com/akoidan/vue-webpack-typescript && cd vue-webpack-typescript
  • yarn install
  • yarn run build
  • yarn run e2e

您还可以在上面的仓库中查看babel分支,以查看使用babel而不是ts-loader的示例

以下是使用ts-loader进行安装的示例:

package.json

{
  "nyc": {
    "extends": "@istanbuljs/nyc-config-typescript",
    "all": true
  }
}

赛普拉斯/积分/sample_spec.ts

describe('My first Test', function() {
    it('Does not much', function() {
        cy.visit('/');
        cy.contains('Filtered Users');
    })
});

cypress / plugins / index.js

module.exports = (on) => {
    on('task', require('@cypress/code-coverage/task'));
    on('file:preprocessor', require('@cypress/code-coverage/use-browserify-istanbul'));
};

cypress / support / index.js

import './commands'
import '@cypress/code-coverage/support';

测试chrome devtool

window.__coverage__ // undefined

标准输出

----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |        0 |        0 |        0 |        0 |                   |
----------|----------|----------|----------|----------|-------------------|

1 个答案:

答案 0 :(得分:0)

  • 似乎无法通过ts-loader使覆盖范围正常工作
  • babel 7 + babel-preset-typescript-vue必须与vue-property-decorator配合使用

以下是使用codecov

的github回购示例