maven - 为什么@Ignore 注解不忽略带注解的测试?

标签 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 看起来:

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

结果我收到:

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

为什么@Ignore注解没有效果?

最佳答案

你只展示了一小部分代码,但据我所知,我怀疑你正在使用 JUnit 3(从 Testcase 扩展并通过“测试”识别测试方法前缀。

Ignore 注解仅适用于 JUnit 4 测试,即:

测试方法用@Test注解,类不继承自TestCase

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

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

关于maven - 为什么@Ignore 注解不忽略带注解的测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34067164/

相关文章:

android - 包括在生成的 android 库的 pom 中的依赖项

java - 可以在多个类方法中使用相同的 BasicDataSource、Connection、Statement 和 ResultSet 对象吗?

maven - 通过传递命令行开关启用某些 Maven 测试

javascript - 如果我没有全局安装 selenium-webdriver,我该如何更新它?

ruby-on-rails - 如何为 Ruby on Rails 创建功能测试

java - 为具有 Restful 服务和 Swing 特性的基于 Maven 的动态项目构建可执行的 war/jar

testing - TestCafe重新加载页面并重新执行fixture hook

java - 运行 JUnit 测试后所做的数据库更改不可见

java - 如何将 jUnit 5 与 Gradle 结合使用

spring-mvc - RestAssuredMockMvc 连接到 http ://localhost:8080 refused