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

May*_*y12 2 testing junit maven maven-surefire-plugin

同事,我的测试课中有@ignore批注 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());
        } 
}
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

<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>
Run Code Online (Sandbox Code Playgroud)

结果,我收到:

[INFO]扫描项目... [INFO] [INFO] ----------------------------------- ------------------------------------- [INFO]建筑适配器0.0.1-SNAPSHOT [INFO] -------------------------------------------------- ---------------------- [INFO] [INFO] --- maven-jaxb2-plugin:0.13.0:generate(默认)@ adapter- [INFO]源资源的最新检查[INFO] [INFO] --- maven-resources-plugin:2.6:resources(default-resources)@适配器--- [INFO]使用'UTF-8'编码复制过滤的资源。[INFO]复制3个资源[INFO]复制1个资源[INFO] [INFO] --- maven-compiler-plugin:3.3:compile(default-compile)@ adapter --- [INFO]检测到更改-重新编译模块![INFO]将25个源文件编译到C:\ Users \ git \ adapter \ adapter \ target \ classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources(default-testResources)@适配器--- [INFO]使用'UTF-8'编码复制过滤的资源。[INFO]跳过不存在的resourceDirectory C:\ Users \ git \ adapter \ adapter \ src \ test \ resources [INFO] [INFO] --- maven-compiler-plugin:3.3:testCompile(default-testCompile)@适配器- -[信息]无需编译-所有类都是最新的[信息] [信息] --- maven-surefire-plugin:2.19:test(默认测试)@适配器---

-------------------------------------------------------
 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] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

为什么@Ignore注释无效?

Jen*_*der 5

您仅显示了代码的一小部分,但据我所知,我怀疑您正在使用JUnit3(从Testcase扩展并通过“ test”前缀标识测试方法。

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

测试方法用@Test注释,并且该类不继承自TestCase

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

public class AdapterAppTest {    
    @Test     
    @Ignore("this test is not ready yet")
    public static void testCreateApplicationWithAllRequiredParameters() {
Run Code Online (Sandbox Code Playgroud)