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 ஐப் பயன்படுத்தலாம். அந்த தேர்வை சோதனையின் நோக்கத்தில் தெரியும்படி வைத்திருங்கள்: கிளையண்ட் வழியைச் சோதிப்பதும் இயக்க முறைமையின் ப்ராக்ஸி கண்டறிதலைச் சோதிப்பதும் வெவ்வேறு சரிபார்ப்புகள்.