new File(fixtureDir, 'gradle.properties').text = """systemProp.http.proxyHost=proxy.example
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.example
systemProp.https.proxyPort=8080
"""

def result = GradleRunner.create()
    .withProjectDir(fixtureDir)
    .withArguments('assemble')
    .build()

Dùng thư mục fixture hiện có mà withProjectDir chọn, cùng với các tệp build/settings của nó. Gộp thuộc tính proxy với những gì fixture đã cần; máy chủ và cổng proxy vẫn tách riêng. Với các lượt tải từ kho công khai được phép, danh sách proxy HTTP cung cấp ứng viên cho những thuộc tính đó.

Bản build bên ngoài của plugin có thể thành công trong khi bản build kiểm thử chức năng này thất bại. Việc import lớp kiểm thử của nó không sao chép gradle.properties bên ngoài, và các thuộc tính trên JVM của JUnit tự chúng không mô tả đầu vào của bản build riêng.

TestKit mặc định dùng thư mục người dùng Gradle được cô lập, nên các thuộc tính riêng thông thường của nhà phát triển có thể không có. Ngược lại, thuộc tính dòng lệnh -D hoặc thư mục người dùng có thể ghi đè các mục của fixture.

Điều này cấu hình các yêu cầu tới kho Gradle. Một plugin khởi chạy trình tải khác hoặc có phương thức truyền HTTP riêng có thể cần tuyến khác.

Bài viết liên quan