Java سىناقلىرى java.net.useSystemProxies نى نېمىشقا بايقىمايدۇ
قوزغىتىشقا سەزگۈر Java ۋاكالەتچى بايقاش تاللانمىلىرىنى سىناقلارنى ئىجرا قىلىۋاتقان JVM غا يوللاڭ، پەقەت ئەپ ياكى build قوزغاتقۇچىغا ئەمەس.
ئەپىڭىز سىستېما ۋاكالەتچىسىنى بايقايدۇ، ئەمما 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 نى ئىشلىتەلەيدۇ. بۇ تاللاشنى سىناقنىڭ مەقسىتىدە كۆرۈنەرلىك ساقلاڭ: خېرىدار يولىنى سىناش ۋە مەشغۇلات سىستېمىسىنىڭ ۋاكالەتچى بايقىشىنى سىناش ئوخشىمىغان تەكشۈرۈشلەر.