Қолданбаңыз жүйелік проксиді анықтайды, ал JUnit тесті оны анықтамайды. Анықтау кодын өзгертер алдында қай JVM әр процесті іске қосатынын және қандай аргументтер алғанын анықтаңыз.

JDK java.net.useSystemProxies параметрін іске қосу кезінде бір рет тексерілетін қасиет ретінде құжаттайды. Оны тест әдісінің ішінде орнату сол іске қосу шешімін өзгерту үшін тым кеш болуы мүмкін.

IDE қолданба іске қосқышы, IDE тест жүргізушісі, Maven өзі және тармақталған Surefire тест процесі әртүрлі VM аргументтеріне ие болуы мүмкін. Бір іске қосқыштағы прокси параметрі басқа іске қосқыш оны жеткізгеніне дәлел емес.

Тармақталған процесс конфигурациясын тексеріңіз

Surefire-дың argLine тармақталған орындаулар үшін пәрмен жолының JVM параметрлерін береді. Тесттер осындай тармақта орындалғанда іске қосу параметрі сонда болуы мүмкін:

<argLine>-Djava.net.useSystemProxies=true</argLine>

Параметрді жобаның бар конфигурациясымен біріктіріңіз. Бар argLine-ды ауыстыру қамту агенттерін немесе басқа қажетті JVM параметрлерін жоғалтуы мүмкін. Егер build ешбір тармақты пайдаланбаса, оның орнына тесттерді шынымен орналастыратын JVM-ді тексеріңіз; argLine тек тармақталған орындаулар үшін тиімді деп құжатталған.

Тестілеу фреймворкінің қасиеттер механизмі арқылы берілген, іске қосуға сезімтал емес қасиеттің өмірлік циклі басқа. System.getProperty() тест кезінде қажетті жолды қайтаратындықтан ғана әр қасиет VM-ге жеткілікті ерте жетеді деп ойламаңыз.

Бағытталған прокси-маршруттау тесті үшін анық конфигурацияланған клиент жұмыс үстелі конфигурациясына тәуелділікті де азайта алады. Java 11+ HttpClient осы мақсат үшін клиентке жергілікті HTTP ProxySelector пайдалана алады. Бұл таңдауды тесттің мақсатында көрінетін етіп ұстаңыз: клиент маршрутын тексеру және операциялық жүйенің проксиін анықтауды тексеру — әртүрлі тексерулер.

Қатысты мақалалар