Załóżmy, że mam zestaw testowy spuścizna JUnit, który obejmuje następujące testy:Rozwiązywanie Java classpath cholery w dziedzictwo junit testowego pakietu
public class AwesomeTest {
public void testBusinessLogic() {
...
[awesome mocking library]
...
}
}
public class AmazingTest {
public void testBusinessProcess() {
...
[amazing xml operation]
...
}
}
Załóżmy teraz, że niesamowite biblioteka Mocking opiera się na awesome biblioteki generacji BCEL kodu bajtowego, który zawiera klasę org.useful.XMLClass
i ta biblioteka ma wersję 1 XMLClass.
Załóżmy teraz, że operacja Amazing Xml opiera się na Amazing Xml Library, która zawiera klasę org.useful.XMLClass
, a ta biblioteka ma wersję 2 klasy XML.
Załóżmy również, że wersja 2 tej klasy nie jest wstecznie zgodna z wersją 1 - tak więc jakakolwiek wersja ma wyższy priorytet w ścieżce klasy - powoduje ona rozłączenie zależności drugiej wersji.
Załóż również, że istnieje 400 testów opartych na niesamowitej bibliotece szyderczej - więc przepisanie nie jest pożądaną opcją.
Załóż również, że niektóre ważne funkcje biznesowe zostały zbudowane z niesamowitymi bibliotekami xml - i zdecydowanie nie należy ich przepisywać.
Jak rozwiązać tę sytuację z piekłem klaskowym - poza uruchomieniem testów mrówek (zakładając, że używasz Mrówki) dwa razy z dwiema ręcznie zamawianymi ścieżkami klas i ręcznie określonymi podzestawami testowymi? (Jestem otwarty na pomysł z niestandardowymi klasami ładującymi - ale wydaje się, że jest to ten sam poziom obsługi, co podwójna niestandardowa ścieżka klasy z rozwiązaniem ant).
Tak, to jest w porządku. Błąd wydaje się być związany z generatorem kodu bajtowego, który w pierwszej kolejności zawiera plik XML. Polecam aktualizację Twojej szyderczej biblioteki. – Perception
Może być możliwe pobranie kodu źródłowego "Awesome BCEL bytecode library" i utworzenie widelca, który będzie polegał na przemianowanej wersji klasy org.useful.XMLClass. – gontard
Zgadzam się, że nie ma prostej odpowiedzi. Możesz spróbować użyć niestandardowych ładowarek, może ... ale to wydaje się być większym wysiłkiem, niż warto. Przepiszę testy przy użyciu nowej biblioteki dla operacji XML lub szyderstwa. – RudolphEst