为什么@Ignore注释不起作用?

时间:2015-12-03 13:21:34

标签: maven testing junit maven-surefire-plugin

同事们,我的测试班AppTest.java.

中有@ignore注释
     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());
        } 
}

我的pom看起来:

<!-- 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>

<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>

结果我收到了:

  

[INFO]扫描项目......       [信息]       [INFO] ----------------------------------------------- -------------------------       [INFO]建筑适配器0.0.1-SNAPSHOT       [INFO] ----------------------------------------------- -------------------------       [信息]       [INFO] --- maven-jaxb2-plugin:0.13.0:generate(默认)@ adapter ---       [INFO]最新检查源资源       [信息]       [INFO] --- maven-resources-plugin:2.6:资源(默认资源)@ adapter ---       [INFO]使用“UTF-8”编码复制过滤后的资源。       [INFO]复制3个资源       [INFO]复制1个资源       [信息]       [INFO] --- maven-compiler-plugin:3.3:compile(default-compile)@ adapter ---       [INFO]检测到更改 - 重新编译模块!       [INFO]将25个源文件编译为C:\ Users \ git \ adapter \ adapter \ target \ classes       [信息]       [INFO] --- maven-resources-plugin:2.6:testResources(default-testResources)@ adapter ---       [INFO]使用“UTF-8”编码复制过滤后的资源。       [INFO]跳过不存在的resourceDirectory C:\ Users \ git \ adapter \ adapter \ src \ test \ resources       [信息]       [INFO] --- maven-compiler-plugin:3.3:testCompile(default-testCompile)@ adapter ---       [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] ------------------------------------------------------------------------

为什么@Ignore注释无效?

1 个答案:

答案 0 :(得分:5)

你只展示了很少的代码,但是从我看到的,我怀疑,你正在使用JUnit3(从Testcase扩展并通过'test'前缀识别testmethods。

忽略注释仅适用于JUnit 4 Test,即:

使用@Test注释Testmethods,并且该类不从TestCase继承

使用现在发布的代码,将测试开始更改为:

public class AdapterAppTest {    
    @Test     
    @Ignore("this test is not ready yet")
    public static void testCreateApplicationWithAllRequiredParameters() {