2012-09-05 38 views
11

मैं कुछ एकीकरण परीक्षण चलाने के लिए मेवेन-असफलता-प्लगइन का उपयोग करना चाहता हूं। यदि कोई परीक्षण विफल रहता है, तो मैं चाहता हूं कि मैवेन बिल्ड को विफल कर दें और सफल न हो।मेवेन-असफलता-प्लगइन असफलताओं और सफल सफलता?

Tests run: 103, Failures: 1, Errors: 0, Skipped: 26 
[INFO] BUILD SUCCESS* 


मैं इसे कैसे कॉन्फ़िगर कर सकते हैं, कि सफलता है नहीं का निर्माण?

मेरे फेल सेफ प्लगइन के रूप में कॉन्फ़िगर किया गया है:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>${failsafe.version}</version> 
    <configuration> 
     <systemProperties> 
      <CI_INTEGRATION_OVERRIDE_PATH>${basedir}/..</CI_INTEGRATION_OVERRIDE_PATH> 
     </systemProperties> 
     <includes> 
      <include>**/integration/**/*.java</include> 
     </includes> 
     <excludes> 
      <exclude>**/integration/**/*TestSuite.java</exclude> 
     </excludes> 
    </configuration> 
    <executions> 
     <execution> 
      <id>integration-test</id> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
+0

मेवेन-असफलता-प्लगइन का कौन सा संस्करण आप उपयोग करते हैं? कौन सा मेवेन संस्करण? आपने एकीकरण परीक्षण चलाने के लिए एमवीएन कैसे कहा? – khmarbaise

+2

देखें [यह मेल थ्रेड] (http://maven.40175.n5.nabble.com/Failing-a-build-with-maven-failsafe-plugin-td3199308.html) "मेवेन - उपयोगकर्ता" पर। –

+0

मेवेन कॉल: एमवीएन क्लीन इंस्टॉल -पी जार असफलता: एकीकरण-परीक्षण- 2.12 MAVEN 3.16 – Fawi

उत्तर

1

समाधान।

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <skip>true</skip> 
    </configuration> 
    <executions> 
    <execution> 
     <id>unit-test</id> 
     <phase>test</phase> 
     <goals> 
     <goal>test</goal> 
     </goals> 
     <configuration> 
     <skip>false</skip> 
     <excludes> 
      <exclude>**/*IntegrationTest.java</exclude> 
     </excludes> 
     </configuration> 
     </execution> 
     <execution> 
     <id>integration-test</id> 
     <phase>integration-test</phase> 
     <goals> 
      <goal>test</goal> 
     </goals> 
     <configuration> 
      <skip>false</skip> 
      <enableAssertions>false</enableAssertions> 
      <includes> 
      <include>**/*IntegrationTest.java</include> 
      </includes> 
      <systemPropertyVariables> 
      <integration>${integration}</integration> 
      </systemPropertyVariables> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 
+6

यह उत्तर failffe प्लगइन को surefire प्लगइन के साथ बदल रहा है। – Andrew

1

जब से तुम mvn clean install चल रहे दोनों integration-test और verify चरणों को क्रियान्वित किया जाना चाहिए। असफल प्लगइन डॉक्स के अनुसार failsafe:integration-test और failsafe:verify लक्ष्य उन चरणों से बंधे हैं, इसलिए मुझे विश्वास नहीं है कि अतिरिक्त कॉल failsafe:integration-test आवश्यक है।

हालांकि, मुझे यकीन नहीं है कि मैं असफल प्लगइन दस्तावेज़ों पर भरोसा करता हूं। मैं इस वर्ष की शुरुआत में किसी के लिए answered a similar question। यह पता चला कि उन्हें प्रत्येक चरण को सही चरण में स्पष्ट रूप से बांधना था और फिर असफलता के रूप में काम किया। एक शॉट के लायक हो सकता है।

+0

मुझे एक समाधान मिला है, मैं अपने एकीकरण परीक्षणों के लिए मेवेन-निश्चित फ़ायरफ़ॉक्स-प्लगइन का उपयोग कर सकता हूं। – Fawi

7

जैसा कि एंड्रयू ने बताया, सही समाधान विफलता का उपयोग इरादे के रूप में करना है। एकीकरण-परीक्षण लक्ष्य विशेष रूप से डिज़ाइन को विफल करने के लिए डिज़ाइन नहीं किया गया है। यदि आप बिल्ड को विफल करना चाहते हैं, तो mvn verify या mvn failsafe:verify

+1

मैं आपके उत्तर से सहमत हूं। यह परीक्षण लक्ष्य डिजाइन द्वारा विफल नहीं है। "मेरे लक्ष्य अलग थे और मैं सॉफ्टवेयर का एक राय टुकड़ा बनाना चाहता था और मैंने कॉन्फ़िगरेशन पर सम्मेलन की धारणा को प्राथमिकता दी।" जैसा कि मैवेन लेख के इतिहास में जेसन वैन ज़िल द्वारा उद्धृत किया गया है। सामानों को करने के लिए चारों ओर हैकिंग करने के बजाए सम्मेलनों का पालन करना हमेशा अच्छा होता है, जिनके लिए इसे डिज़ाइन नहीं किया गया है। – NewUser

+1

मुझे अक्सर पता चलता है कि मेवेन लेखकों के इरादे सीधे एक साधु व्यक्ति इसका उपयोग करने का प्रयास कर सकते हैं। – cbmanica