2015-03-13 17 views
5

Tôi có thử nghiệm hội nhập với các chú thích trên đó:mùa xuân - qua các đối số dòng lệnh

@WebAppConfiguration 
@ActiveProfiles("integration") 
@ContextConfiguration(loader = SpringApplicationContextLoader, classes = [MyApplication]) 
@IntegrationTest(["server.port=0"]) 

tôi có thể vượt qua ví dụ server.port tài sản để kiểm tra bối cảnh, nhưng là có cách nào để vượt qua đối số dòng lệnh? Đơn đăng ký của tôi được bắt đầu như thế này bình thường:

public static final void main(String[] args) { 
    SpringApplication.run(AnkaraCollectorApplication.class, args); 
} 

và tôi muốn chuyển qua một số arg để kiểm tra ngữ cảnh. Có bất kỳ tài sản cho điều này?

Trả lời

0

Nếu bạn đang sử dụng maven, bạn có thể vượt qua args kiểm tra JVM bên trong các plugin chạy failsafe:

<plugin> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> ... <configuration>
<argLine> whatever you want: -DhelloWorld=Test </argLine> </configuration> ...

Bạn cũng có thể thiết lập này lập luận JVM dựa trên hồ sơ cá nhân maven rằng bạn đang thực hiện:

<profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <!-- Development JVM arguments --> <test-arguments>-Dhello=true</test-arguments> <!-- Default environment --> <environment>develop</environment> </properties> </profile> ... <plugin> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> ... <configuration>
<argLine>${test-arguments}</argLine> </configuration> ...

+0

Nhưng tôi cần phải vượt qua các đối số dòng lệnh. Tôi sử dụng một số thư viện trong đó có SpringListList mùa xuân và người nghe này đang sử dụng các đối số dòng lệnh từ ApplicationEnvironmentPreparedEvent.getArgs(). Tôi phải làm điều gì đó getArgs() sẽ trả về các đối số của tôi. – wjtk

+0

Vấn đề ở đây là kiểm tra tích hợp không gọi phương thức Application.main của bạn. Nó chỉ kiểm tra các chú thích. Bạn đang sử dụng các đối số lệnh đó ở đâu? – jfcorugedo

Các vấn đề liên quan