Me ya sa gwaje-gwajen Java suke rasa java.net.useSystemProxies
Mika zaɓuɓɓukan gano proxy na Java da suka dogara da farawa ga JVM da ke gudanar da gwaje-gwajen, ba ga aikace-aikacen ko mai ƙaddamar da build kawai ba.
Aikace-aikacenka yana gano proxy na tsarin, amma gwajin JUnit ba ya gano shi. Kafin ka canza lambar gano, gano wace JVM ce ke gudanar da kowace tsari da waɗanne gardama ta karɓa.
JDK yana rubuta java.net.useSystemProxies a matsayin dukiya da ake dubawa sau ɗaya a lokacin farawa. Saita shi cikin hanyar gwaji na iya zama a makara don canza wannan shawarar farawa.
Mai ƙaddamar da aikace-aikacen IDE, mai gudanar da gwajin IDE, Maven kansa, da tsarin gwajin Surefire da aka raba duk na iya samun gardamar VM daban-daban. Saitin proxy a cikin mai ƙaddamar ɗaya ba hujja ba ce cewa wani mai ƙaddamar ya miƙa shi.
Duba tsarin tsarin da aka raba
argLine na Surefire yana ba da zaɓuɓɓukan JVM na layin umarni don ayyukan da aka raba. Zaɓin farawa na iya kasancewa a can lokacin da gwaje-gwajen ke gudana a irin wannan reshe:
<argLine>-Djava.net.useSystemProxies=true</argLine>Haɗa zaɓin cikin tsarin aikin da ake da shi. Maye gurbin argLine da ke akwai na iya watsar da wakilan ɗaukar hoto ko wasu saitunan JVM da ake buƙata. Idan build ɗin ba ya amfani da reshe, duba JVM ɗin da ke ɗaukar gwaje-gwajen a maimakon haka; an rubuta argLine a matsayin mai tasiri kawai don ayyukan da aka raba.
Dukiyar da ba ta dogara da farawa ba da aka bayar ta hanyar tsarin dukiya na tsarin gwaji tana da yanayin rayuwa daban. Kada ka ɗauka cewa kowace dukiya tana isa VM da wuri isa kawai saboda System.getProperty() yana mayar da igiyar da ake so yayin gwajin.
Don gwajin tura proxy mai da hankali, abokin ciniki da aka saita a fili zai iya rage dogaro da tsarin tebur. Java 11+ HttpClient na iya amfani da HTTP ProxySelector na cikin gida na abokin ciniki don wannan. Ka riƙe wannan zaɓi a bayyane cikin manufar gwajin: gwada hanyar abokin ciniki da gwada gano proxy na tsarin aiki dubawa ne daban-daban.