Mae eich rhaglen yn canfod procsi'r system, ond nid yw prawf JUnit yn gwneud hynny. Cyn newid y cod canfod, nodwch pa JVM sy'n rhedeg pob proses a pha ymresymiadau a gafodd.

Mae'r JDK yn dogfennu java.net.useSystemProxies fel eiddo a wirir unwaith ar gychwyn. Gall ei osod y tu mewn i ddull prawf fod yn rhy hwyr i newid y penderfyniad cychwyn hwnnw.

Gall lansiwr rhaglen IDE, rhedwr profion IDE, Maven ei hun, a phroses prawf Surefire fforchiedig fod â dadleuon VM gwahanol. Nid yw gosodiad procsi mewn un lansiwr yn brawf bod lansiwr arall wedi'i drosglwyddo.

Gwiriwch ffurfweddiad y broses fforchiedig

Mae argLine Surefire yn cyflenwi opsiynau JVM llinell orchymyn ar gyfer gweithrediadau fforchiedig. Gall opsiwn cychwyn fod yno pan fydd y profion yn rhedeg mewn fforch o'r fath:

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

Uno'r opsiwn â ffurfweddiad presennol y prosiect. Gall disodli argLine presennol daflu asiantau sylw neu osodiadau JVM angenrheidiol eraill. Os nad yw'r build yn defnyddio fforch, archwiliwch y JVM sy'n cynnal y profion mewn gwirionedd yn lle hynny; mae argLine wedi'i ddogfennu fel un effeithiol ar gyfer gweithrediadau fforchiedig yn unig.

Mae gan eiddo nad yw'n sensitif i gychwyn a gyflenwir drwy fecanwaith eiddo fframwaith prawf gylch bywyd gwahanol. Peidiwch â chymryd yn ganiataol bod pob eiddo'n cyrraedd y VM yn ddigon cynnar dim ond oherwydd bod System.getProperty() yn dychwelyd y llinyn dymunol yn ystod y prawf.

Ar gyfer prawf llwybro procsi penodol, gall cleient a ffurfweddwyd yn eglur hefyd leihau'r ddibyniaeth ar ffurfweddiad y bwrdd gwaith. Gall Java 11+ HttpClient ddefnyddio HTTP ProxySelector lleol i'r cleient at y diben hwnnw. Cadwch y dewis hwnnw'n weladwy yn mwriad y prawf: mae profi llwybr cleient a phrofi canfod procsi'r system weithredu yn wiriadau gwahanol.

Erthyglau cysylltiedig