精华内容
下载资源
问答
  • 如何使用Maven运行单元测试

    千次阅读 2020-05-26 10:22:04
    您可以使用mvn test test在Maven运行单元测试。 几个例子: # Run all the unit test classes. $ mvn test # Run a single test class. $ mvn -Dtest=TestApp1 test # Run multiple test classes. $ mvn -...

    您可以使用mvn test test在Maven中运行单元测试。 几个例子:

    # Run all the unit test classes.
    $ mvn test
    
    # Run a single test class.
    $ mvn -Dtest=TestApp1 test
    
    # Run multiple test classes.
    $ mvn -Dtest=TestApp1,TestApp2 test
    
    # Run a single test method from a test class.
    $ mvn -Dtest=TestApp1#methodname test
    
    # Run all test methods that match pattern 'testHello*' from a test class.
    $ mvn -Dtest=TestApp1#testHello* test
    
    # Run all test methods match pattern 'testHello*' and 'testMagic*' from a test class.
    $ mvn -Dtest=TestApp1#testHello*+testMagic* test

    默认的maven-surefire-plugin已过时,请确保已更新至最新版本以支持新功能,例如模式匹配或运行单个测试方法等。

    pom.xml
    <build>
            <plugins>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.0</version>
                </plugin>
    
            </plugins>
        </build>

    1. Maven Java项目

    回顾一个简单的Java项目,如何在Maven中运行单元测试类。

    1.1目录结构。

    1.2 Maven + JUnit 5示例。

    pom.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <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>com.mkyong.examples</groupId>
        <artifactId>maven-unit-test</artifactId>
        <packaging>jar</packaging>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <!-- https://maven.apache.org/general.html#encoding-warning -->
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
    
        <dependencies>
    
            <!-- junit 5, unit test -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>5.3.1</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
        <build>
            <finalName>maven-unit-test</finalName>
            <plugins>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.0</version>
                </plugin>
    
            </plugins>
        </build>
    
    </project>

    1.3两个Java类,稍后我们将为其创建单元测试类。

    MagicBuilder.java
    package com.mkyong.examples;
    
    public class MagicBuilder {
    
        public static int getLucky() {
            return 7;
        }
    
    }
    MessageBuilder.java
    package com.mkyong.examples;
    
    public class MessageBuilder {
    
        public static String getHelloWorld(){
            return "hello world";
        }
    
        public static int getNumber10(){
            return 10;
        }
    
    }

    1.4 MagicBuilder测试类

    TestMagicBuilder.java
    package com.mkyong.examples;
    
    import org.junit.jupiter.api.Test;
    
    import static org.junit.jupiter.api.Assertions.assertEquals;
    
    public class TestMagicBuilder {
    
        @Test
        public void testLucky() {
            assertEquals(7, MagicBuilder.getLucky());
        }
    
    }

    1.5 MessageBuilder测试类

    pom.xml
    package com.mkyong.examples;
    
    import org.junit.jupiter.api.Test;
    
    import static org.junit.jupiter.api.Assertions.assertEquals;
    
    public class TestMessageBuilder {
    
        @Test
        public void testHelloWorld() {
            assertEquals("hello world", MessageBuilder.getHelloWorld());
        }
    
        @Test
        public void testNumber10() {
            assertEquals(10, MessageBuilder.getNumber10());
        }
    
    }

    2. Maven测试

    2.1运行所有测试类。

    Terminal
    $ mvn test
    
    [INFO] -------------------------------------------------------
    [INFO]  T E S T S
    [INFO] -------------------------------------------------------
    [INFO] Running com.mkyong.examples.TestMagicBuilder
    [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in com.mkyong.examples.TestMagicBuilder
    [INFO] Running com.mkyong.examples.TestMessageBuilder
    [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.mkyong.examples.TestMessageBuilder
    [INFO]

    2.2运行单个测试类TestMessageBuilder

    Terminal
    $ mvn -Dtest=TestMessageBuilder test
    
    [INFO] -------------------------------------------------------
    [INFO]  T E S T S
    [INFO] -------------------------------------------------------
    [INFO] Running com.mkyong.examples.TestMessageBuilder
    [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in com.mkyong.examples.TestMessageBuilder
    [INFO]

    2.3从测试类TestMessageBuilder运行单个测试方法testHelloWorld()

    Terminal
    $ mvn -Dtest=TestMessageBuilder#testHelloWorld test
    
    [INFO] -------------------------------------------------------
    [INFO]  T E S T S
    [INFO] -------------------------------------------------------
    [INFO] Running com.mkyong.examples.TestMessageBuilder
    [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in com.mkyong.examples.TestMessageBuilder
    [INFO]

    下载源代码

    $ git clone https://github.com/mkyong/maven-examples.git
    $ cd maven-unit-test
    $ mvn测试
    $ mvn -Dtest = TestMessageBuilder测试
    $ mvn -Dtest = TestMessageBuilder#testHelloWorld测试

    参考文献

    1. JUnit 5
    2. 运行一个测试

    翻译自: https://mkyong.com/maven/how-to-run-unit-test-with-maven/

    展开全文
  • maven运行单元测试

    千次阅读 2019-07-29 17:30:11
    要通过Maven运行单元测试,发出此命令: mvn test 这会在你的项目中运行整个单元测试。 案例学习 创建两个单元测试,并通过 Maven运行它。参见一个简单的 Java测试类: package com.yiibai.core; public ...

    转载自:https://www.yiibai.com/maven/run-unit-test-with-maven.html

    要通过Maven运行单元测试,发出此命令:

    mvn test

    这会在你的项目中运行整个单元测试。

    案例学习

    创建两个单元测试,并通过 Maven 的运行它。参见一个简单的 Java 测试类:

    package com.yiibai.core;
    
    public class App {
    	public static void main(String[] args) {
    
    		System.out.println(getHelloWorld());
    
    	}
    
    	public static String getHelloWorld() {
    
    		return "Hello World";
    
    	}
    
    	public static String getHelloWorld2() {
    
    		return "Hello World 2";
    
    	}
    }

    Unit Test 1

    单元测试为getHelloWorld()方法。

    package com.yiibai.core;
    
    import junit.framework.Assert;
    import org.junit.Test;
    
    public class TestApp1 {
    
    	@Test
    	public void testPrintHelloWorld() {
    
    		Assert.assertEquals(App.getHelloWorld(), "Hello World");
    
    	}
    
    }

    Unit Test 2

    单元测试为getHelloWorld2()方法。

    package com.yiibai.core;
    
    import junit.framework.Assert;
    import org.junit.Test;
    
    public class TestApp2 {
    
    	@Test
    	public void testPrintHelloWorld2() {
    
    		Assert.assertEquals(App.getHelloWorld2(), "Hello World 2");
    
    	}
    
    }

    运行单元测试

    使用Maven运行单元测试看见下面的例子。

    示例 1
    运行整个单元测试(TestApp1和TestApp2),发出以下命令:

    mvn test

    示例 2
    为了运行单个测试(TestApp1),发出此命令:

    mvn -Dtest=TestApp1 test [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ yiibai-core --
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ y
    ibai-core ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory C:\worksp\yiibai-core\src\test\resou
    ces
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ yiibai
    core ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ yiibai-core ---
    [INFO] Surefire report directory: C:\worksp\yiibai-core\target\surefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running com.yiibai.core.TestApp1
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.143 s
    [INFO] Finished at: 2015-11-03T20:29:50+08:00
    [INFO] Final Memory: 11M/114M
    [INFO] ------------------------------------------------------------------------
    

    示例 3
    为了运行单个测试(TestApp2),发出此命令:

    mvn -Dtest=TestApp2 test

    注意
    欲了解更多“mvn test”的例子,请参考Maven测试插件文档


     

    展开全文
  • maven运行指定的单元测试方法

    千次阅读 2019-07-12 09:07:49
    mvn test -Dtest=ImportAdministrativeDivisionTests#importProvinceData -DfailIfNoTests=false mvn test -Dtest=类名#方法名 -DfailIfNoTests=false
    mvn test -Dtest=ImportAdministrativeDivisionTests#importProvinceData -DfailIfNoTests=false
    

    mvn test -Dtest=类名#方法名 -DfailIfNoTests=false

    展开全文
  • maven 单元测试并行 大约是时候单元测试的开发人员能够使用批注在Parallel中运行测试。 在今天的博客文章中,我们将介绍如何使用Easytest提供的注释使传统的Junit测试并行运行。 易测 是在JUnit之上构建的测试框架...

    maven 单元测试并行

    大约是时候单元测试的开发人员能够使用批注在Parallel中运行测试。 在今天的博客文章中,我们将介绍如何使用Easytest提供的注释使传统的Junit测试并行运行。 易测 是在JUnit之上构建的测试框架,可让您轻松编写和维护测试。 它专注于为您的应用程序编写数据驱动测试。

    让我们首先假设一个类ItemService具有方法2的方法:

    1. 带有2个参数Double itemId和String itemType的getItems。 API类如下所述。
    2. updateItem接受一个I​​tem实例并在数据库中对其进行更新。
    public class ItemService {
    
       public List getItems (Double itemId , String itemType);
    
       public void updateItem (Item item);
    
    }

    为了简化示例,我们将省略实现。

    让我们看一下编写并行单元测试的分步方法。

    第1步:

    Maven Central Repository下载EasyTest的最新版本(或1.2或更高版本)

    第2步:

    接下来,让我们使用EasyTest批注和数据驱动的测试方法为上述业务方法编写一个简单的单元测试。

    @RunWith(DataDrivenTestRunner.class)
    @DataLoader(filePaths="getItemData.csv")
    @TestConfigProvider(TestConfigProvider.class)
    public class ItemServiceTest {
    
         @Inject
         private ItemService itemService;
    
         @Before
         public void before() {
             System.out.println("BEFORE");
         }
    
         @Test
         public List testGetItems(@Param(name="itemId")Double itemId , @Param(name="itemType")String itemType) {
           
              //Actual test conditions here
               System.out.println("Run testGetItems");
    
         }
    
         @Test
         public void testUpdateItem(@Param(name="item") Item item) {
           
              //Actual test conditions here
              System.out.println("Run testUpdateItem");
    
         }
    
        @After
         public void after() {
             System.out.println("AFTER");
         }
    }

    上面的示例使用EasyTest的现有功能,例如在测试文件中提供数据,并使用CDI批注注入测试bean。 如果您想了解有关EasyTest中的@TestConfigProvider和依赖注入的更多信息,请参见我以前的博客文章。 如果您想进一步了解如何使用EasyTest编写数据驱动测试,可以访问EasyTest的WIKI Pages

    现在,上面是运行简单的数据驱动单元测试的示例。 以上所有测试将依次进行串行测试。 假设每种测试方法在getItemData.csv文件中指定了两组测试数据,则在运行上述测试时,我们将在控制台上获得以下内容:

    BEFORE
    Run testGetItems
    AFTER
    
    BEFORE
    Run testGetItems
    AFTER
    
    BEFORE
    Run testUpdateItem
    AFTER
    
    BEFORE
    Run testUpdateItem
    AFTER

    步骤3:

    接下来,让上述测试并行运行。 只需在类级别包含@Parallel批注,并提供要运行的线程数。 对于上述测试用例,我们将运行两个线程。

    @RunWith(DataDrivenTestRunner.class)
    @DataLoader(filePaths="getItemData.csv")
    @TestConfigProvider(TestConfigProvider.class)
    @Parallel(threads=2)
    public class ItemServiceTest {
    
         @Inject
         private ItemService itemService;
    
         @Before
         public void before() {
             System.out.println("BEFORE");
         }
    
         @Test
         public List testGetItems(@Param(name="itemId")Double itemId , @Param(name="itemType")String itemType) {
           
              //Actual test conditions here
               System.out.println("Run testGetItems");
    
         }
    
         @Test
         public void testUpdateItem(@Param(name="item") Item item) {
           
              //Actual test conditions here
              System.out.println("Run testUpdateItem");
    
         }
    
        @After
         public void after() {
             System.out.println("AFTER");
         }
    }

    注意lass级别的@Parallel批注。

    运行该测试时,控制台输出看起来像这样(运行相同的测试时可能会有所不同):

    BEFORE
    BEFORE
    Run testGetItems
    BEFORE
    Run testUpdateItem
    AFTER
    Run testGetItems
    BEFORE
    AFTER
    Run testUpdateItem
    AFTER
    AFTER

    从上面的控制台输出中可以看到,测试是同时运行的,这就是为什么看到这样的分布式控制台输出的原因。

    结论

    在上面的示例中,我们看到了如何在Parallel中运行测试。 同样,当使用Maven等构建工具构建测试时,这些测试将并行运行。 这对您具有成千上万的单元测试并且它们需要几分钟的运行时间的场景有很大的帮助。

    EasyTest正在使用命令行/系统参数方法来启用/禁用并行功能。 敬请关注。

    参考: JavaWorld Blog博客上的JCG合作伙伴 Anuj Kumar 并行运行单元测试

    翻译自: https://www.javacodegeeks.com/2013/07/run-your-unit-tests-in-parallel.html

    maven 单元测试并行

    展开全文
  • 在使用maven执行测试运行时,即执行maven test命令,控制台中文乱码 解决方案: 项目pom.xml中增加 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-...
  • 如果使用过SpringgBoot,你会为他这种模块化设计感到不错...但是问题也来了,因为你在做单元测试的同时,在进行maven打包的时候会报错,你看报错的形式多种多样,找不到对应的bean,连接失败等千奇百怪。但你定位位...
  • 单元测试覆盖率
  • <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test<.../dependency>...
  • jacoco单元测试覆盖率+maven DEMO
  • 使用Maven打包时候,可能由于环境不同从而导致打包时部分Test无法通过,此时使用Maven语法跳过单元测试,即可进行打包。 <plugin> <groupId>org.apache.maven.plugins</groupId> <...
  • 文章目录如何加快CI(maven编译和单元测试)速度CI速度慢到什么程度会无法接受加快编译速度增量编译模块并行编译加快单元测试速度单元测试并行优化单元测试如何找到执行时间较长的单元测试 CI速度慢到什么程度会无法...
  • mvn test -q -Dtest=!无需执行的单元测试类,!无需执行的单元测试
  • IDEA Maven项目利用Junit4进行单元测试

    千次阅读 2018-10-10 22:13:39
    最近在开发项目的时候需要写单元测试,之前一直没有接触过,于是从零开始入门学习,查了网上相关资料,总结成为笔记...(3)运行单元测试 补充: 1、关于Junit_Test_DemoTest需要注意: 2、几个常用的注解 3、@T...
  • 如何在Maven打包过程停止执行单元测试 1. 概述 通常跳过单元测试是一个坏的开发习惯。然而,在某些情况下也有例外情况;可能是当我们在开发新代码并希望运行测试无法通过或无法编译的中间构建时。 仅在这些情况下,...
  • maven编译时有两种跳过单元测试的方法 cmd命令行跳过单元测试 cmd命令有两种参数跳过单元测试 mvn clean install -Dmaven.test.skip=true 不编译不执行测试用例 mvn clean install -DskipTests 编译但不执行测试...
  • 测试报告不是在Maven构建期间由Sonar Maven插件生成的(请参阅SonarQube的博客文章 )。 因此,在Sonar Maven插件收集SonarQube服务器的信息之前,必须由另一个插件生成测试报告。 在这里,Jacoco Maven插件可以...
  • 运行和调试两个菜单项上添加maven的处理方式,根据直接调用maven的原生命令来进行单元测试或main方法的运行,你仍然可以使用一流的处理方式运行。 需求 IntelliJ IDEA 12及更高版本 依赖插件(__粗体__为必选插件...
  • maven项目的单元测试和遇到的问题

    千次阅读 2017-06-17 13:58:46
    这种写法可以直接用注解自动注入service进行测试,较为方便,需要引入spring-test的jar包 import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration
  • 执行maven命令时,避免运行测试类,解决方法如下: 在pom.xml中加入该plugin再次尝试即可 properties中引入版本号: <maven.surefire.plugin.version>2.7.2</maven.surefire.plugin.version>...
  • maven 打包跳过单元测试

    千次阅读 2019-05-20 13:36:04
    1、pom.xml中配置 ...--跳过单元测试 --> <maven.test.skip>true</maven.test.skip> <maven.javadoc.skip>true</maven.javadoc.skip> </properties> 2、...
  • idea maven项目添加单元测试依赖

    千次阅读 2018-12-29 22:50:53
    &lt;dependency&gt; &lt;groupId&gt;junit&lt;/groupId&gt; &lt;artifactId&gt;junit&lt;/artifactId&gt; &lt;version&gt;4.12&lt;/version&...
  • maven项目,单元测试jacoco、junit...........................................................................................
  • Maven打包跳过单元测试

    千次阅读 2019-05-24 11:27:00
    maven跳过单元测试-maven.test.skip和skipTests的区别 -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。 -Dmaven.test.skip=true,不执行测试用例,也不编译测试...
  • Maven跳过单元测试配置

    千次阅读 2017-02-27 09:03:42
    介绍二种跳过单元测试的配置方式 使用maven-surefire-plugin,修改pom文件 &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;...
  • 当我开始使用Java 7时,我立即注意到Cobertura Maven插件不支持它 。 这对我来说是个大问题,因为我每天都使用代码覆盖率报告。 我做了一些研究,发现了JaCoCo代码覆盖库 。 看起来很有趣,我决定试一试。 问题...
  • 场景1:单模块 或 多模块独立统计(即每个模块只使用自己的单元测试统计覆盖率)使用maven中集成的插件:cobertura-maven-plugincobertura-maven-plugin:用于校验单元测试用例覆盖率,可以生成单元测试覆盖率报告...
  • IDEA创建maven单元测试

    2019-09-10 00:39:57
    新建一个类以后,将光标定位在类名上面,悬停大概5秒,会出现一个灯泡状图标,点击图标,就可以迅速创建单元测试 创建单元测试的时候要注意,testing library要选择JUnit(3还是4还是5,看安装的版本),还要选择...
  • Maven中的单元测试

    千次阅读 2015-05-23 22:52:14
    1:首先查看项目的依赖首先命令行切换到pom.xml文件所在的目录下,然后运行...如果我们还想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行:mvn install -X从调试
  • dubbo单元测试maven项目

    2015-06-01 10:03:42
    在dubbo的注册服务下单元测试,然后扫描 注册上来的各种服务,轻松测试每个注册服务
  • maven 打包编译忽略单元测试

    千次阅读 2018-08-17 15:46:48
    maven 打包编译忽略单元测试类 当用maven项目的时候,测试是系统必不可少的,但是在打包或者需要执行maven 命令的时候,一般不去限制的话,就会去执行测试单元,导致各种各样的问题,所以我们可以在pom.xml 中直接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,818
精华内容 21,927
关键字:

maven如何运行所有的单元测试