İlkbahar 2.0.8'in AbstractTransactionalDataSourceSpringContextTests üzerinde oluşturulan test sınıflarımız var. Bunların hepsi JUnit3 tarzında yazılmış çok sayıda var.JUnit3 test sınıflarında Ant ile özel bir JUnit4 Runner'ı nasıl çalıştırabilirim?
JUnit 4 filtrelemesini kullanmak için, bu testleri belirli bir uygulama ortamıyla eşleştirmemize ve buna göre filtrelememize olanak veren JUnit38Runner'ı değiştirdik.
Tüm test paketi, özel JUnit38Runner cihazımızdaki @RunWith ek açıklamasını kullanarak, Ant'in dışında iyi çalışır. Bununla birlikte, Ant uygulamasında çalıştırmaya çalıştığımızda, bireysel testleri ya junit.framework.TestSuite olarak çalıştırmaya ya da JUnit4TestAdapter içine sarmaya zorlar ve her ikisi de JUnit4 altındaki ek açıklamaları görmezden gelir. Daha da kötüsü yapmak için mevcut süitlerimiz, JUnit'e delege etmek yerine doğrudan suite() yöntemini çağıran Ant tarafından açıkça geçersiz kılınmıştır.
Ant JUnitTestRunner'dan genişletmeye çalıştım ve run() yöntemini geçersiz kılmaya çalıştım, ancak sınıf basitçe uzantı için yazılmadı.
JUnitTestRunner'ın tamamını kopyalayıp (onu kırılgan kod sorunlarına açacak olan) hacklemekten başka, bu problemi çözmek için başka yaklaşımlarla herhangi bir şansı oldu mu?
Burada birkaç kod-kokusu var gibi görünüyor. Muhtemelen aradığınız cevap olmadığını biliyorum, ancak test durumlarınızı yeniden gözden geçirmenin vakti gelmiş olabilir. – bakoyaro
Refactoring, Ant ile ilgili sorunları düzeltmeyecektir (Jun 3'te JUnit 4 testlerini sarma). Çok sayıda çözümle birlikte, tökezliyor ama sanırım mermiyi ısırmak ve JUnit4 Ant görevini bu günlerden birine yazmam gerekecek. – Matt
Belki de [JUnit4'e Yükseltme ve eski JUnit 3 testlerini ve test süitlerini bir arada çalıştırarak tutmaya] bir yanıt var. [1]? [1]: http: //stackoverflow.com/questions/1861875/upgrading-to-junit4-and-keeping-legacy-junit-3-tests-and-test-suites-by-running –