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 භාවිත කළ හැක. එම තේරීම පරීක්ෂණයේ අදහස තුළ දෘශ්යමානව තබන්න: සේවාලාභී මාර්ගය පරීක්ෂා කිරීම සහ මෙහෙයුම් පද්ධතියේ ප්රොක්සි සොයාගැනීම පරීක්ෂා කිරීම වෙනස් ය.