Why @Ignore annotation doesn't ignore the annotated test?
Asked Answered
T

1

6

Colleagues, I have @Ignore annotation in my test class AppTest.java.

import java.math.BigInteger;
import java.util.UUID;
    
import org.fluttercode.datafactory.impl.DataFactory;
import org.junit.Ignore;
import org.junit.Test;
    
import junit.framework.TestCase;
    
public class AdapterAppTest extends TestCase {    
    @Ignore("this test is not ready yet")
        public static void testCreateApplicationWithAllRequiredParameters() {
            
            AdapterApp.setWsURL(URL);
        
            AdapterApp adapterApp = new AdapterApp(); 
            System.out.println("Set UP Request Parameters");
            
            DataFactory df = new DataFactory();
            
            adapterApp.setRequestTimestamp("2015-12-01T12:12:12.123"));
            adapterApp.setRequestUid(UUID.randomUUID().toString());
            adapterApp.setProductType("0");
            
            
            String applicationNum = adapterApp.createApplication();
            assertEquals("2 symb", 2, applicationNum.length());
        } 
}

My pom looks:

<dependencies>
     

    <!-- Spring framework -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.3.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.2.3.RELEASE</version>
    </dependency>


    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>


    <dependency>
        <groupId>io.codearte.jfairy</groupId>
        <artifactId>jfairy</artifactId>
        <version>0.5.1</version>
    </dependency>


    <dependency>
        <groupId>org.fluttercode.datafactory</groupId>
        <artifactId>datafactory</artifactId>
        <version>0.8</version>
    </dependency>


    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
        <version>2.2.3.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.1</version>
    </dependency>



    <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.11.0</version>
    </dependency>



</dependencies>

<build>


    <plugins>


        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>


        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
                <executions>
                <execution>
                    <goals>
                        <goal>test</goal>
                    </goals>
                </execution>
            </executions>
            
            
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.surefire</groupId>
                    <artifactId>surefire-junit47</artifactId>
                    <version>2.19</version>
                </dependency>
            </dependencies>
            
            <configuration>
                <includes>
                    <include>AdapterAppTest.java</include>
                </includes>
            </configuration>
        </plugin>




        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.adapter</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>



        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.adapter</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>


        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.13.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaLanguage>WSDL</schemaLanguage>
                <generatePackage>com.adapter_entities</generatePackage>
                <schemas>
                    <schema>
                        <url>src/main/resources/Import.wsdl</url>
                    </schema>
                </schemas>

            </configuration>
        </plugin>



    </plugins>
</build>

As a result I receive:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building adapter 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-jaxb2-plugin:0.13.0:generate (default) @ adapter ---
[INFO] Up-to-date check for source resources 
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ adapter ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ adapter ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 25 source files to C:\Users\git\adapter\adapter\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ adapter ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\git\adapter\adapter\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ adapter ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ adapter ---

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.adapter.AdapterAppTest

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.546 sec - in com.adapter.AdapterAppTest

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default) @ adapter ---
[INFO] Skipping execution of surefire because it has already been run for this configuration
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.452 s
[INFO] Finished at: 2015-12-03T16:09:13+03:00
[INFO] Final Memory: 25M/413M
[INFO] ------------------------------------------------------------------------

Why @Ignore annotation have not effect?

Trepidation answered 3/12, 2015 at 13:21 Comment(3)
Are you using @org.junit.Ignore?Guernsey
Yes, org.junit.Ignore. Sorry for formatting, i am trying to fix.Trepidation
It is tricky to comment without the real code that is having problem. I would recommend that you update your question to include your Test class with the test method that should be skipped as well as the imports then it will be easier to spot mistakes. Keep in mind that you can also skip tests using maven-surefire-plugin config but, you want @Ignore to work so fair enough so show us more codeGuernsey
W
8

You have only shown tiny pieces of you code, but from what I see, I'd suspect, that you are using JUnit 3 (extending from Testcase and identifying test methods by the 'test' prefix.

The Ignore annotation works only with JUnit 4 Test, i.e:

Testmethods are annotated with @Test and the class does not inherit from TestCase

Using the now posted code, change the start of the test to:

public class AdapterAppTest {    
    @Test     
    @Ignore("this test is not ready yet")
    public static void testCreateApplicationWithAllRequiredParameters() {
Weeds answered 3/12, 2015 at 13:46 Comment(2)
Sorry, i am trying to post only pieces which have sense. I use jUnit 4Trepidation
Jens, thank you : Tests run: 1, Failures: 0, Errors: 0, Skipped: 1Trepidation

© 2022 - 2024 — McMap. All rights reserved.