2012-09-24 14 views
7

मैं अपने आवेदन में 4.8.2 और Maven 3 कुछ परीक्षण JUnit है विफलता के मामले में निर्माण असफल चाहिए और उनमें से कुछ (सिर्फ रिपोर्ट है कि निम्न वैकल्पिक परीक्षण विफल) नहीं होना चाहिएJUnit वैकल्पिक/आवश्यक परीक्षणों

मैं इसे जूनिट के साथ कैसे कर सकता हूं और यदि मैं नहीं कर सकता तो शायद testng कर सकता है?

उदा। मेरे पास दो टेस्ट केस हैं:

पहले वास्तव में महत्वपूर्ण नहीं है और कनेक्शन टाइमआउट, सेवा अनुपलब्धता आदि के कारण विफल हो सकता है। निर्माण के साथ-साथ में विफल रहा है किया जाना चाहिए

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

दूसरा वास्तव में महत्वपूर्ण है लिख सकते हैं और अगर यह विफल करना चाहते हैं, मैं @ इग्नोर के बारे में जानता हूं - यह वह नहीं है जिसे मैं ढूंढ रहा हूं, क्योंकि मैं किसी भी परीक्षण को छोड़ना नहीं चाहता हूं।

मुझे @ श्रेणी के बारे में पता है, तो अगर आपको यह सुनिश्चित करने के लिए निश्चित प्लगइन को कॉन्फ़िगर करना है: श्रेणी श्रेणी com.me.Required - विफलता के मामले में निर्माण विफल होना चाहिए और यदि श्रेणी com.me.Optional - build नहीं होना चाहिए विफल

+0

वास्तव में आपका प्रश्न क्या है में परिणाम होगा? क्या आप टेस्ट केस लिख रहे हैं जो असफल हो जाएंगे या नहीं? वे कैसे दिखते हैं? आपका पोम कैसा दिखता है? – khmarbaise

+0

मैंने अपना प्रश्न अपडेट किया है। कृपया –

उत्तर

3

अपने परीक्षणों के लिए failsafe प्लगइन का उपयोग करने पर विचार करें जो असफल होने की अनुमति है और testFailureIgnore को ध्वजांकित करने के लिए सेट करें।

use करने के लिए आप प्लगइन जोड़ने के लिए फेल सेफ प्लगइन आप

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>foo.bar</groupId> 
    <artifactId>test</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-failsafe-plugin</artifactId> 
       <version>2.12.4</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>integration-test</goal> 
          <goal>verify</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <testFailureIgnore>true</testFailureIgnore> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

अचूक प्लगइन पोम करने के लिए डिफ़ॉल्ट प्रति Test की तरह नामित परीक्षण निष्पादित करेंगे। असफलता प्लगइन डिफ़ॉल्ट रूप से IT नामक परीक्षण निष्पादित करेगा।

को देखते हुए परीक्षण

import static org.junit.Assert.*; 

import org.junit.Test; 

public class SurefireTest { 

    @Test 
    public void test() { 
     assertTrue(true); 
    } 

} 

और

import static org.junit.Assert.*; 

import org.junit.Test; 

public class FailsafeIT { 

    @Test 
    public void test() { 
     assertTrue(false); 
    } 

} 

रनिंग mvn install अब

[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building test 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
. 
. 
. 
------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running SurefireTest 
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.062 sec 

Results : 

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 
. 
. 
. 
------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running FailsafeIT 
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.072 sec <<< FA 
ILURE! 
... 
Results : 

Failed tests: test(FailsafeIT) 

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0 
. 
. 
. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.174s 
[INFO] Finished at: Sat Sep 29 08:19:38 CEST 2012 
[INFO] Final Memory: 9M/245M 
[INFO] ------------------------------------------------------------------------ 
+0

पर एक नज़र डालें क्या यह सभी परीक्षणों के लिए testFailureIgnore लागू करने की अनुमति देता है?मुझे नहीं लगता कि –

+0

@ सेर्गी क्रावचेन मुझे नहीं लगता कि यह विकल्प उपलब्ध है। तो मैं परीक्षण चलाने का सुझाव देता हूं जो निश्चित प्लगइन के साथ असफल नहीं होना चाहिए और असफल प्लगइन (और testFailureIgnore 'true' पर असफल होने की अनुमति देने वाले परीक्षण को चलाने के लिए – FrVaBe

+0

क्या इन दोनों प्लगइन को एक साथ रखना संभव है? यदि ऐसा है, तो कृपया अपना उत्तर संपादित करें और मैं इसे स्वीकार्य के रूप में चिह्नित करूंगा :) धन्यवाद –

1
  1. आप @Ignore उपयोग कर सकते हैं, Is there a way to skip only a single test in maven?

  2. देखने के लिए आपको एक निश्चित पैकेज में परीक्षण को छोड़ सकते हैं Is there a way to tell surefire to skip tests in a certain package? या http://maven.apache.org/plugins/maven-failsafe-plugin/examples/inclusion-exclusion.html या

  3. आप उपयोग कर सकते हैं Jun यह 4.8 श्रेणियाँ JUnit श्रेणियाँ http://maven.apache.org/plugins/maven-failsafe-plugin/examples/junit.html

  4. आप skipITs http://maven.apache.org/plugins/maven-failsafe-plugin/verify-mojo.html#skipITs

उपयोग कर सकते हैं मुझे लगता है कि JUnit 4.8 श्रेणियाँ वास्तव में है कि आप क्या देख रहे हैं।

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