Η εφαρμογή σας εντοπίζει το proxy του συστήματος, αλλά ένα test JUnit όχι. Πριν αλλάξετε τον κώδικα εντοπισμού, προσδιορίστε ποιο JVM εκτελεί κάθε διεργασία και ποια ορίσματα έλαβε.

Το JDK τεκμηριώνει το java.net.useSystemProxies ως ιδιότητα που ελέγχεται μία φορά κατά την εκκίνηση. Ο ορισμός του μέσα σε μια μέθοδο test μπορεί να είναι πολύ αργά για να αλλάξει αυτή την απόφαση εκκίνησης.

Ένας εκκινητής εφαρμογής IDE, ένας εκτελεστής tests IDE, το ίδιο το Maven και μια διακλαδισμένη διεργασία tests Surefire μπορούν όλα να έχουν διαφορετικά ορίσματα VM. Μια ρύθμιση proxy σε έναν εκκινητή δεν αποδεικνύει ότι άλλος εκκινητής τη μετέφερε.

Ελέγξτε τη διαμόρφωση της διακλαδισμένης διεργασίας

Το argLine του Surefire παρέχει επιλογές JVM γραμμής εντολών για διακλαδισμένες εκτελέσεις. Μια επιλογή εκκίνησης μπορεί να ανήκει εκεί όταν τα tests εκτελούνται σε τέτοια διακλάδωση:

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

Συγχωνεύστε την επιλογή στη υπάρχουσα διαμόρφωση του έργου. Η αντικατάσταση ενός υπάρχοντος argLine μπορεί να απορρίψει πράκτορες κάλυψης ή άλλες απαιτούμενες ρυθμίσεις JVM. Αν η build δεν χρησιμοποιεί διακλάδωση, εξετάστε αντ' αυτού το JVM που φιλοξενεί πραγματικά τα tests· το argLine τεκμηριώνεται ως αποτελεσματικό μόνο για διακλαδισμένες εκτελέσεις.

Μια ιδιότητα που δεν εξαρτάται από την εκκίνηση και παρέχεται μέσω του μηχανισμού ιδιοτήτων ενός πλαισίου tests έχει διαφορετικό κύκλο ζωής. Μην υποθέσετε ότι κάθε ιδιότητα φτάνει στο VM αρκετά νωρίς μόνο επειδή το System.getProperty() επιστρέφει το επιθυμητό string κατά τη διάρκεια του test.

Για ένα εστιασμένο test δρομολόγησης proxy, ένας ρητά διαμορφωμένος πελάτης μπορεί επίσης να μειώσει την εξάρτηση από τη διαμόρφωση της επιφάνειας εργασίας. Το Java 11+ HttpClient μπορεί να χρησιμοποιήσει για τον σκοπό αυτό έναν τοπικό για τον πελάτη HTTP ProxySelector. Κρατήστε αυτή την επιλογή ορατή στην πρόθεση του test: το να δοκιμάζετε μια διαδρομή πελάτη και το να δοκιμάζετε τον εντοπισμό proxy του λειτουργικού συστήματος είναι διαφορετικοί έλεγχοι.

Σχετικά άρθρα