typescript - cypress kapsamı vue-property-decorator ile çalışmıyor


Ön uçta Cypress ile kod kapsamı yapmak istiyorum. Şu anda Cypress kapsam için Istanbul öneriyor. Ne yazık ki aşağıdaki yığın ile birlikte bunu kullanamıyorum:

  • vue-özellik-dekoratörü
  • koz
  • İstanbul kod kapsamı.
  • typescript.

Nedeniyle: - istanbul-intementer-loader alt yapısında babel kullandığı için istanbul'u ts-loader ile çalıştırmanın bir yolunu bulamadım - babel-loader, typescript'in yaptığı şekilde dekoratörleri desteklemiyor, bu da vue-property-decorator'ı bozuyor. vue-property-decorator olmadan TypeScript ile Vue kullanmak pek hoş değil...

İşte bazı faydalı linkler:

  • babel kapsamlı depo için örnek
  • resmî kılavuz
  • TypeScript kullanıcıları için resmi GitHub deposu
  • sedir sorunu

İşte depo ve hızlı bir genel bakış:

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

Ayrıca yukarıdaki depodaki babel dalını da inceleyebilirsiniz, ts-loader yerine babel ile örneği görmek için

İşte ts-loader ile kurulum örneği:

package.json:

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

cypress/iintegration/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';

test chrome geliştirici aracı:

window.__coverage__ // undefined

stdout:

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

Cevap #1

  • Görünüşe göre ts-loader ile kapsam çalıştırmanın bir yolu yok
  • vue-property-decorator ile çalışmasını sağlamak için babel 7 + babel-preset-typescript-vue gereklidir

İşte çalışan codecov ile github deposunun örneği