2016-12-24 22 views
9

Jest'te tüm diğer testler tamamlandıktan sonra çalıştırılan temizleme veya yırtılacak görevleri çalıştırmak mümkün mü? SetupFiles herhangi bir testin çalıştırılmasından sonra görevlerin nasıl ayarlanmasına izin verdiğine benzer. Bu, eğer testin herhangi bir hata yapıp yapmadığına bakılmaksızın da çalışabiliyorsa, bonus puanları. Bir dosyanın en üst düzeyine (herhangi bir açıklama işlevinin dışında), yalnızca belirli bir dosyadaki sınamalar bittikten sonra yürütmek için, afterAll(() => {})'u koymanız gerekir.Tüm testler çalıştıktan sonra jest'i temizleme

Kullanım durumu, bir geliştirme veritabanında kullanıcılar oluşturacak çok sayıda sınama dosyası var ve her bir sınama dosyasını daha sonra temizlemekten ve kaldırılmasından sorumlu olmak istemiyorum. Testler yazılırken hatalar da meydana gelebilir, bu nedenle temizleme işlemi tercih edilen hatalardan bağımsız olarak gerçekleşir.

+0

ben her test tamamen çevre üzerinde kontrol olması gerekir düşünüyorum, bu yüzden her test kendi çevre için sorumlu olmalıdır. Belki de ihtiyacın olan şey birden fazla ortama sahip olmaktır, örneğin bir tanesi bellekte (db'nin sahte bir uygulamasıyla) ve gerçekten veritabanıyla çalışan diğer bir programda çalıştırılabilir. –

+0

Test çalıştırıcınıza bir temizlik komutu ekleyebilir misiniz? yani gulp, make, grunt vs kullanıyorsanız: 'run_your_tests.js; clean_up_database; ' – dm03514

cevap

5

setupFiles'a bir test kancası var, bu da her test takımından çok önce ateşlenecek ama test koşucunuzun hemen ardından (varsayılan olarak Jasmine2) küresel ortamı başlattı.

setupTestFrameworkScriptFile olarak adlandırılır ve setupFiles gibi bir dizi değil, parametre olarak bir dizge alır.

böyle kullanın:

{ 
    "setupTestFrameworkScriptFile": "<rootDir>/setup.js" 
} 

Örnek setup.js:

beforeAll(() => console.log('beforeAll')); 
afterAll(() => console.log('afterAll')); 

setup.js

şey ihraç etmek gerekmez. Her test paketinden önce yürütülür (her test dosyası). Test koşucusu zaten başlatılmış olduğundan, beforeAll ve afterAll gibi global işlevler, normal test dosyanızdaki gibi kapsam dahilindedir, böylece istediğiniz gibi arayabilirsiniz.

setupTestFrameworkScriptFile firing beforeAll and afterAll

+2

tatlı, bu ihtiyaç duyduğum şeye benziyor! teşekkür ederim. – dcochran

İlgili konular