דיין אַפּליקאַציע דערקענט דעם סיסטעם פּראָקסי, אָבער אַ JUnit טעסט דערקענט אים נישט. איידער איר ענדערט דעם אַנטדעקונג קאָד, באַשטימט וועלכע JVM פֿירט אויס יעדער פּראָצעס און וועלכע אַרגומענטן ער האָט באַקומען.

דער JDK דאָקומענטירט java.net.useSystemProxies ווי אַן אייגנשאַפֿט וואָס ווערט געפּרויפֿט איין מאָל ביים אָנהייב. אים שטעלן אין אַ טעסט מעטאָד קען זיין צו שפּעט צו ענדערן יענעם אָנהייב באַשלוס.

אַן IDE אַפּליקאַציע אָנהייבער, אַן IDE טעסט פֿירער, Maven אַליין און אַ צעצווייגטער Surefire טעסט פּראָצעס קענען אַלע האָבן אַנדערע VM אַרגומענטן. אַ פּראָקסי איינשטעלונג אין איין אָנהייבער איז נישט קיין באַווײַז אַז אַן אַנדער אָנהייבער האָט אים איבערגעגעבן.

פּרויפֿט די קאָנפֿיגוראַציע פֿון דעם צעצווייגטן פּראָצעס

argLine פֿון Surefire גיט JVM באַפֿעלן-שורה אָפּציעס פֿאַר צעצווייגטע אויספֿירונגען. אַן אָנהייב אָפּציע קען געהערן דאָרט ווען די טעסטן לויפֿן אין אַזאַ צווײַג:

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

צונויפֿגיסן די אָפּציע מיט דער באַשטייענדיקער קאָנפֿיגוראַציע פֿון פּראָיעקט. אַרויסנעמען אַ באַשטייענדיק argLine קען אַוועקוואַרפֿן דעקונג אַגענטן אָדער אַנדערע פֿאָדערלעכע JVM איינשטעלונגען. אויב דער build ניצט קיין צווײַג נישט, פּרויפֿט אַנשטאָט די JVM וואָס האָסטעוועט טאַקע די טעסטן; argLine איז דאָקומענטירט ווי ווירקזאַם בלויז פֿאַר צעצווייגטע אויספֿירונגען.

אַן אייגנשאַפֿט וואָס איז נישט אָנהייב-שפּירעוודיק און ווערט צוגעשטעלט דורך דעם אייגנשאַפֿטן מעכאַניזם פֿון אַ טעסט פֿראַמעוואָרק האָט אַן אַנדער לעבן-ציקל. רעכנט נישט אַז יעדע אייגנשאַפֿט דערגרייכט די VM פֿרי גענוג בלויז ווײַל System.getProperty() גיט צוריק דעם געוואונטשטן שטריק בעשאַפֿט פֿון דער פּרובֿ.

פֿאַר אַ פֿאָקוסירטער פּראָקסי-ראָוטינג פּרובֿ קען אַן אויסשליסלעך קאָנפֿיגורירטער קליענט אויך פֿאַרקלענערן די אָפּהענגיקייט פֿון דעסקטאָפּ קאָנפֿיגוראַציע. Java 11+ HttpClient קען דערפֿאַר ניצן אַ קליענט-לאָקאַלן HTTP ProxySelector. האַלט יענע אויסוואַל זעבאַר אין דער כוונה פֿון דער פּרובֿ: פּרויען אַ קליענט רוטע און פּרויען די אַנטדעקונג פֿון אָפּעראַציע-סיסטעם פּראָקסי זענען אַנדערע פּרויפֿונגען.

פֿאַרבונדענע אַרטיקלען