2015-07-08 24 views
14

fdescribe() ve fit() ortamlarını temel alarak devre dışı bırakmak, bir takım testlerde çalışırken gürültüyü azaltmak için idealdir. Şubemdeki master'ı birleştirmeden önce, onları describe()/it() olarak değiştirmeyi bazen unutuyorum. (Kod üzerinde çalışırken bunları ayrı bir dalda bulundurmak yeterlidir - bir ön taahhüt benim için işe yaramaz.)Jasmine'in fdescribe() ve fit() ortamını

CI ortamım Codeship'dir. Herhangi bir odaklanmış yönteme rastlasa, bu soruna bir kod uyumsuzluk testi getirecek bir çözüm var mı? no-focused-tests gibi bir şey kullanmak iyi olur. Bu kuralı Kod’da hata olarak nasıl etkinleştirebiliriz ve yerel olarak nasıl devre dışı bırakabilirim?

+2

çalıştırmak için hazır 'hayır odaklı-tests' genellikle önce bunu beni kurtardı :). Birleştirme kancası gibi bir şeye ne dersin? (http://stackoverflow.com/questions/19102714/how-would-i-write-a-pre-merge-hook-in-git) – alecxe

+0

Ne yazık ki kural bir kural olarak tetiklenemediği sürece GitHub üzerinde gerçekleşir GitHub sunucuları bunun olacağını düşünmüyorum. Yine de fikir için teşekkürler! +1 – Guy

+2

Yapımın bir parçası olarak jshint'i çalıştırıyorum, bu tür şeyleri yakalar. –

cevap

2

Test edilmemiş testler gibi bir şey kullanmak iyi olur. Bu kuralı Kod’da hata olarak nasıl etkinleştirebiliriz ve yerel olarak nasıl devre dışı bırakabilirim?

Sen ortam değişkenleri bir arada kullanın ve fdescribe/yerleştirme küresel işlevlerini yeniden tanımlanması olabilir:

  1. npm i --save cross-env

  2. package.json:

    "scripts": { 
        "test": "jasmine", 
        "test-safe": "cross-env FOCUSED_TESTS=off jasmine" 
    }, 
    
  3. disableFocusedTestsIfNecessary. js (dahil kıç er yasemin) onun globalsi tanımlar:

    if (process.env.FOCUSED_TESTS === "off") { 
        console.log("Focused tests must be off"); 
        global.fdescribe = global.fit = function() { 
        throw new Error("fdescribe and fit are disabled in this environment"); 
        }; 
    } 
    else { 
        console.log("Focused tests enabled"); 
    } 
    
  4. Tell codeship sen yasemin ve eslint kullanıyorsanız, sen sağlamak için bu eklentiyi kullanabilirsiniz yerine ilgilenenler için npm run test

2

ait npm run test-safe çalıştırmak için odaklanmış test yok: https://github.com/tlvince/eslint-plugin-jasmine.

  1. İlk eslint küresel npm install -g eslint yükleyin.
  2. Ardından eslint-plugin-jasmine kitaplığı npm install --save-dev eslint-plugin-jasmine'u yükleyin.
  3. böyle bir şey olmazdı bir .eslintrc dosyası oluşturun:

    { 
        "rules": { 
        "semi": 2 
        }, 
        "plugins": ["jasmine"], 
        "env": { 
        "jasmine": true 
        }, 
        "extends": "plugin:jasmine/recommended", 
    } 
    
  4. Sonra linter eslint -c ./.eslintrc app.js

+1

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir.- [Yorum Yaz] (/ review/düşük kaliteli yazılar/13590911) – RamenChef

+0

İyi geliyor, tavsiye için teşekkürler. – TheNastyOne