JavaRush /Kurslar /All lectures for UZ purposes /Testlarni parallel bajarish

Testlarni parallel bajarish

All lectures for UZ purposes
Daraja, Dars
Mavjud

Spring Framework 5.0 versiyasidan boshlab bitta JVM doirasida testlarni parallel bajarish uchun Spring TestContext Framework asosiy qo'llab-quvvatlashi mavjud. Bu, umuman olganda, ko'p test sinflari yoki test metodlarini test kodida yoki konfiguratsiyasida hech qanday o'zgarishlarsiz parallel bajarish mumkinligini bildiradi.

Testlarni parallel bajarishni qanday sozlash haqida batafsil ma'lumotni sizning test tizimingiz, build vositangiz yoki IDE hujjatlarida topishingiz mumkin.

Eslab qoling, testlar to'plamiga parallelizatsiyani joriy etish kutilmagan yon ta'sirlar, dastur ishlashida g'ayrioddiy mantiqiy ishlash, shuningdek, testlar vaqti-vaqti bilan yoki tasodifiy muvaffaqiyatsiz bo'lishiga olib kelishi mumkin. Shu sababli, Spring Team quyidagi umumiy tavsiyalarni beradi, qaysi holatlarda testlarni parallel bajarmaslik kerak.

Agar testlar:

  • Spring Framework'da @DirtiesContext annotatsiyasi qo'llab-quvvatlashidan foydalansangiz.

  • Spring Boot'da @MockBean yoki @SpyBean annotatsiyalaridan foydalanayotgan bo'lsangiz.

  • JUnit 4 da @FixMethodOrder annotatsiyasining qo'llab-quvvatlashidan foydalansangiz yoki test metodlarini ma'lum tartibda bajarilishini ta'minlash uchun mo'ljallangan test fraymvorqi funksiyasidan foydalansangiz. Ammo, bu holatlar to'liq test sinflari parallel bajarilganda tegishli emasligiga e'tibor bering.

  • Umumiy xizmatlar yoki tizimlarning holatini o'zgartirish, masalan, ma'lumotlar bazasi, xabar vositachisi, fayl tizimi va boshqalar. Bu ichki va tashqi tizimlarga taalluqlidir.

Agar testlarning parallel bajarilishi natijasida ApplicationContext ushbu test uchun endi faol emasligi haqida istisno yuzaga kelsa, bu odatda ApplicationContext boshqa oqimda ContextCache dan olib tashlanganini bildiradi.

Bu @DirtiesContext annotatsiyasidan foydalanish yoki ContextCache dan avtomatik siqib chiqarish bilan bog'liq bo'lishi mumkin. Agar aybdor @DirtiesContext annotatsiyasi bo'lsa, yoki @DirtiesContext dan foydalanishni oldini olishning yo'lini topishingiz yoki bunday testlarni parallel bajarishdan chiqarib tashlashingiz kerak. Agar ContextCache ning maksimal hajmi oshib ketgan bo'lsa, keshning maksimal hajmini oshirish mumkin. Batafsil ma'lumotni kontekst keshirovka qismida qarang.

Spring TestContext Framework'da testlarni parallel bajarish, faqat TestContext ning asosiy implementatsiyasi javadoc'da tavsiflangan nusxa olish konstruktorini taqdim etsa mumkin. Spring'da foydalaniladigan DefaultTestContext shunday konstruktorni taqdim etadi. Ammo, agar siz TestContext ning maxsus implementatsiyasini taqdim etadigan uchinchi tomon kutubxonasidan foydalansangiz, testlarni parallel bajarishga mos kelishini ta'minlashingiz kerak.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION