Zergatik Java probek ez duten java.net.useSystemProxies aurkitzen
Eman abiaraztearekiko sentikorrak diren Java proxy aurkikuntza aukerak probak exekutatzen dituen JVM-ari, ez soilik aplikazioari edo build abiarazleari.
Zure aplikazioak sistemako proxya detektatzen du, baina JUnit proba batek ez. Detekzio kodea aldatu aurretik, identifikatu zein JVM-k exekutatzen duen prozesu bakoitza eta zein argumentu jaso dituen.
JDK-k java.net.useSystemProxies abiaraztean behin egiaztatzen den propietate gisa dokumentatzen du. Proba metodo baten barruan ezartzea beranduegi izan daiteke abiarazte erabaki hori aldatzeko.
IDE aplikazio abiarazle batek, IDE proba exekutatzaile batek, Maven-ek berak eta adarkatutako Surefire proba prozesu batek VM argumentu desberdinak izan ditzakete. Abiarazle batean egindako proxy ezarpena ez da beste abiarazle batek pasa duenik frogatzen duen ebidentzia.
Egiaztatu adarkatutako prozesuaren konfigurazioa
Surefire-ren argLine-ek komando-lerroko JVM aukerak ematen ditu adarkatutako exekuzioetarako. Abiarazte aukera bat bertan egon daiteke probak horrelako adar batean exekutatzen direnean:
<argLine>-Djava.net.useSystemProxies=true</argLine>Batu aukera proiektuaren lehendik dagoen konfigurazioarekin. Lehendik dagoen argLine bat ordezkatzeak estaldura agenteak edo beste JVM ezarpen beharrezko batzuk bazter ditzake. Build-ak adarrik erabiltzen ez badu, aztertu probak benetan ostatatzen dituen JVM-a horren ordez; argLine dokumentatuta dago adarkatutako exekuzioetarako soilik eraginkorra dela.
Proba esparru baten propietate mekanismoaren bidez emandako abiaraztearekiko sentikorra ez den propietateak bizi-ziklo desberdina du. Ez ezazu suposatu propietate oro VM-ra nahikoa goiz iristen denik System.getProperty()-ek proban zehar nahi den katea itzultzen duelako soilik.
Proxy bideratze proba finkatu bat egiteko, esplizituki konfiguratutako bezero batek mahaigaineko konfigurazioarekiko mendekotasuna ere murriz dezake. Java 11+ HttpClient-ek horretarako bezeroaren tokiko HTTP ProxySelector erabil dezake. Eutsi aukera horri probaren asmoan ikusgai: bezero bide bat probatzea eta sistema eragilearen proxy aurkikuntza probatzea egiaztapen desberdinak dira.