테스트 HTTP 요청을 위한 Maven Surefire 프록시 설정
Maven의 저장소 프록시는 테스트 JVM 내부의 임의 HTTP 클라이언트를 구성하지 않습니다. 테스트가 만드는 요청을 추적하고 구성하세요.
Maven의 저장소 프록시는 테스트가 만드는 HTTP 요청을 구성하지 않고도 의존성을 가져올 수 있습니다. 클라이언트는 테스트 JVM에서 구성하세요.
그 클라이언트가 Java의 HTTPS 프록시 속성을 따른다면 이 조각을 해당 Surefire 플러그인의 configuration 요소 안에 넣으세요.
<systemPropertyVariables>
<https.proxyHost>proxy.example</https.proxyHost>
<https.proxyPort>8080</https.proxyPort>
</systemPropertyVariables>예시 엔드포인트를 바꾸세요. 공용 중개자가 허용되는 공용 대상에 대한 테스트에는 HTTP 프록시 목록이 호스트와 포트 후보를 제공합니다. 호스트와 포트는 별개의 값입니다. 대상 스킴과 라이브러리에 맞는 속성 계열을 선택하세요. 반면 명시적 프록시 객체로 만든 클라이언트는 자체 구성 인터페이스가 필요합니다.
Surefire는 보통 포크된 JVM에서 테스트를 실행합니다. Maven을 실행하는 모든 옵션이 그 프로세스에 도달하지는 않습니다. 시작 시점에 민감한 시스템 프록시 검색은 시작할 때 테스트 JVM에 그 옵션이 있어야 합니다. 테스트가 한 프로세스를 공유하더라도 라이브러리가 Java의 기본 프록시 속성을 무시할 수 있습니다.
내부 직접 대상은 적절한 우회 규칙으로 덮고, 프록시 인증은 대상 인증과 분리하며, 인증서 검증은 켜 두세요. 포크를 끄면 테스트 실행 방식이 바뀌고, 의존성 미러를 바꾸면 저장소 해석이 바뀝니다. 둘 다 빠진 테스트 클라이언트 경로를 제공하지 않습니다. 모든 시스템 속성을 복사하면 비밀 정보가 노출될 수도 있습니다.
남은 실패가 있으면 테스트 JVM, HTTP 라이브러리, 대상, 선택한 프록시, 처음 실패한 단계를 기록하세요. 그 관찰은 테스트 구성을 가리키고, 동작하는 저장소 다운로드는 이해 가능한 상태로 남습니다.