Próbuję uruchomić JUnit test z JMeter 2.7. Jednak po wybraniu klas testowych w rozwijanym menu próbnika JUnit nie pojawiają się one. Jak się dowiedziałem, dzieje się tak dlatego, że klasy testowe rozciągają się od innej klasy (AbstractJUnit4SpringContextTests
jest klasą bazową, z różnymi klasami abstrakcyjnymi pomiędzy metodami wygody) dla wszystkich testów. Można wybrać klasę testową, która nie jest rozszerzona z tych klas bazowych.JUnit nie wyświetla się w JMeter JMeter
Plik JAR zawierający klasy testowe jest tworzony przez Maven (test-jar), JAR zawierający wszystkie zależności jest tworzony przez wtyczkę maven fatjar. Oba słoiki są umieszczane w katalogu JMeter/lib/junit.
Wiem, że instrukcja JMeter mówi, że wszystkie klasy testowe muszą rozciągać się od klasy testowej JUnit, ale to wydaje się być prawdziwe tylko dla JUnit3. W przypadku JUnit4 JMeter nie potrzebuje tego wymagania. Oczywiście, mógłbym przepisać wszystkie testy, aby nie musiały się one rozciągać od klasy bazowej, ale spowodowałoby to ogromny problem z utrzymaniem. Jak więc wykonać testy JUnit za pomocą JMeter, które rozciągają się od klasy bazowej?
UDPATE 2012-08-09
Dzięki nutą PMD, teraz kopiowane Zależności jeden po drugim do folderu lib JMeter, a teraz GUI pokazuje wszystkie moje testy jednostkowe. Zanim to było możliwe, musiałem sam rozwiązać kilka problemów:
- Skopiowanie pliku logkit-1.0.1.jar do folderu uniemożliwiło uruchomienie interfejsu graficznego JMeter. Nie wiadomo dlaczego, nie podano komunikatu o błędzie ani logu. Maszyna JVM właśnie się rozpoczęła i zakończyła.
- Były niektóre konflikty wersji spowodowane przez zależności, które wprowadziły starsze wersje pakietów testowych. W wyniku tego niektóre klasy testowe rozciągnęły się od starszej klasy bazowej o tej samej nazwie. Wyłączenie tych zależności w pliku pom pomogło.
Mogę teraz wykonywać moje przypadki testowe JUnit. Jednak kilka odniesień na moich zajęciach opatrzone jest komentarzem @Resource
. Testrunner JMeter nie wydaje się wstrzykiwać tych odniesień, ponieważ za każdym razem, gdy uzyskuje się dostęp do referencji, wyrzucany jest NullPointerException
, jak widać w dzienniku JMeter. W jaki sposób mogę uzyskać JMeter do wstrzykiwania tych zależności, czy to możliwe?
@ źródła są zwykle interpretowane wiosną podczas inicjowania kontekstu. W takim przypadku powinienem zbadać twój kod głębiej, może powinieneś spojrzeć na to, jak inicjuje się wiosenny test testowy lub możesz spróbować zastąpić metodę instalacji, aby wstrzyknąć ręcznie zasoby. Przy okazji, jeśli moja odpowiedź była prawidłowa, powinieneś oznaczyć ją jako "tak" i być może otworzyć inne pytanie zamiast zmieniać początkowe, tak działa SO. –
@Teinacher czy znalazłeś rozwiązanie tego problemu? Mam to samo i nie wiem jak go rozwiązać – javagirl