2015-03-13 12 views
5

गुजर मैं इस पर एनोटेशन के साथ एकीकरण परीक्षण है:वसंत बूट परीक्षण - कमांडलाइन तर्क

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

मैं संपत्ति server.port उदाहरण के लिए पारित कर सकते हैं संदर्भ परीक्षण करने के लिए, लेकिन वहाँ कमांडलाइन तर्क पारित करने के लिए किसी भी तरह से है? मेरा आवेदन सामान्य रूप से इस तरह शुरू होता है:

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

और मैं संदर्भ का परीक्षण करने के लिए कुछ तर्क पारित करना चाहता हूं। क्या इसके लिए कोई संपत्ति है?

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

इस JVM Maven प्रोफ़ाइल के आधार पर तर्क है कि अपने को क्रियान्वित कर रहे हैं निर्धारित कर सकते हैं:

उत्तर

0

आप Maven का उपयोग कर रहे हैं, तो आप फेल सेफ प्लगइन के अंदर परीक्षण JVM args पारित कर सकते हैं

<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

लेकिन मुझे कमांडलाइन तर्क पारित करने की आवश्यकता है। मैं कुछ लाइब्रेरी का उपयोग करता हूं जिसमें वसंत अनुप्रयोग लिस्टनर है और यह श्रोता एप्लिकेशनEnvironmentPreparedEvent.getArgs() से कमांडलाइन तर्क का उपयोग कर रहा है। मुझे कुछ ऐसा करना है जो प्राप्त करता है ARR() मेरे तर्क वापस कर देगा। – wjtk

+0

यहां समस्या एकीकरण परीक्षण है जो आपके एप्लिकेशन.माइन विधि को कॉल नहीं करता है। यह केवल एनोटेशन का निरीक्षण कर रहा है। आप उन कमांड तर्कों का उपयोग कहां कर रहे हैं? – jfcorugedo

संबंधित मुद्दे