2016-09-12 39 views
10

Çok basit bir sınıf ve bazı birim testleri yazdım. Kapsama raporu% 100 olmalı, ancak şubeler için% 75 görüyorum.İstanbul şubesi kapsama alanı ES6 sınıfı% 100 olmalı, sadece% 75 olmalıdır

enter image description here

ben özlüyorum ne anlamak isteyen olması gereken yerde% 100'e almak ve anlamaya olamaz.

GÜNCELLEME

Birim testleri:

/* global describe jest it expect */ 

import GenericDice from '../generic-dice-vanilla'; 

jest.unmock('../generic-dice-vanilla'); 

describe('GenericDice',() => { 
    it('exists.',() => { 
    expect(GenericDice).toBeDefined(); 
    }); 

    it('has a default face property set to 1',() => { 
    const dice = new GenericDice(); 

    expect(dice.face).toBe(1); 
    }); 

    it('has a default rolling property set to true',() => { 
    const dice = new GenericDice(); 

    expect(dice.rolling).toBe(true); 
    }); 

    it('has a default animation property set to an empty string',() => { 
    const dice = new GenericDice(); 

    expect(dice.animation).toBe(''); 
    }); 

    it('outputs something when the render function is called',() => { 
    const dice = new GenericDice(); 
    const result = dice.render(); 

    expect(result).toBeDefined(); 
    }); 
}); 

Ben Babel.js kullanıyorum ES5 içine ES6 gelen bu kodu transpile için.

birim testleri çalıştırmak için aşağıdaki komutu kullanın:

jest ./src/ -u

tüm kod Github bulunabilir: https://github.com/gyroscopico/generic-dice/tree/feature/35-vanilla

+2

Sorunuzu cevaplamak için hangi birim testleri çalıştırmanız gerektiğini bilmek gerekir. Bunları sorunuza ekleyebilir misiniz? – Philippe

+0

Kodunuzu es5'e dönüştürmek için Babel gibi bir çevirici kullanıyor musunuz? ? Eğer varsa, oluşturulan kodda şubeler eklenebilir. –

+0

Sorunu nasıl yeniden üreteceğiniz konusunda talimatlar verebilir misiniz? Babel.js'yi nasıl çalıştırdığınızı (geçtiğiniz herhangi bir seçenek dahil) ve istanbul'u nasıl çalıştırmanız gerektiği konusunda yardımcı olabilir. – Tim

cevap

1

Bu sürümü ile alakalı Kullandığınız Jest ve aynı zamanda kitaplıkların kapsamını toplamak için kullandığı yol, bu adımları izlerseniz bir uygulama örneği bulacaksınız:

  1. Bu yanıtı kopyalayın https://github.com/a-c-m/react-jest-coverage-test.git
  2. Çalıştır "npm testi"
  3. kapsama Bu komutla

rm-rf node_modules/jest ile

  • kuvvet jest ve babel son sürümünü değil% 100 Bkz; npm install jest @ test babel-jest @ test multimatch istanbul-lib-instrument; npm testi

    1. Bkz kapsama şimdi 100% bu bir tam kapsama almak için yapılandırmanızı güncellemeniz yardımcı olacaktır

    Umut olduğunu. Muhtemelen

    0

    : Eğer ES5 için ES6 transpile zaman

    , transpiler bazen eklemek azaltılmış kapsama sebep olabilecek, yardımcı kod sözde. Örneğin, daktilo bu kod:

    constructor(x: number, y: number, w: number, h: number) { 
        super(); // <- Throws 'Branch not covered'. 
        this.rect = new Rect(x, y, w, h); 
    } 
    

    Buna transpiled edilir:

    var _this = _super.call(this) || this; 
    

    sonuçlanan 'Branch olmayan kapalı'.

    Babel ile, yapılandırmanıza auxiliaryCommentBefore: ' istanbul ignore next ' ekleyin (docs).

    Daha fazla bilgi için bu GitHub issue konusuna bakın.