posts - 347,comments - 31,views - 11万

gen-test-plugin

我们日常编写代码的过程中,经常需要为代码编写测试案例。

随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标。

本框架可以一键生成所有代码对应的 junit 测试案例,为你的人生节约宝贵的时间。

特性

  • 支持生成 junit4/junit5

  • 支持 jdk7

  • 支持自定义生成模板

更新记录

更新记录

gen-test

用于生成 Junit4/Junit5 单元测试。

引入

<plugin>
    <groupId>com.github.houbb</groupId>
    <artifactId>gen-test-plugin</artifactId>
    <version>0.0.1</version>
</plugin>

属性说明

属性 说明 默认值 类型 备注
isOverwriteWhenExists 如果 test 文件已存在,是否覆盖 false 字符串 默认不进行覆盖
encoding 项目编码 utf-8 字符串
includes 包含文件正则 **\/*.java 字符串 默认为所有 java 文件
excludes 排除文件正则 字符串 默认不进行排除
junitVersion junit 版本 4 字符串 默认为 junit4

运行

命令行直接执行

mvn com.github.houbb:gen-test-plugin:0.0.1:gen-test

直接运行【gen-test】插件下 gen-test 即可在项目 test 目录下生成对应的测试类。

效果

比如项目有如下类:

public class HelloTestDemo {

    public static String hello() {
        return "hello";
    }

}

则生成对应测试文件:

package com.github.houbb.gen.maven.plugin.util;

import org.junit.Test;

/**
* HelloTestDemo Tester.
*
* @author houbinbin
* @since Tue Nov 14 16:01:53 CST 2017
* @version 1.0
*/
public class HelloTestDemoTest {

    /**
    *
    * Method: hello()
    */
    @Test
    public void helloTest() throws Exception {
    }

}

junit5 模板

如果想自定义,可以在 maven 项目 resources 文件夹下创建文件 junitTest5.ftl,在下面的基础上进行修改。

junit4 模板

上述的文件生成根据如下模板(Freemarker 语法) 生成

如果想自定义,可以在 maven 项目 resources 文件夹下创建文件 junitTest4.ftl,在下面的基础上进行修改。

  • entry

待生成的实体类信息。

${entry.packageName} 包名

${entry.className} 类名

entry.methodList 获取所有的 非私有/非main() 方法列表。暂时未提供私有方法列表,后期可加。

  • today

当前日期。后期考虑添加格式化配置。

  • method

方法的属性

${method.signature} 方法的签名

${method.name} 方法名称

${method.comment} 方法注释

${method.sourceCode} 方法体内的代码

package ${entry.packageName};

import org.junit.Test;

/**
* ${entry.className} Tester.
*
* @author houbinbin
* @since ${today}
* @version 1.0
*/
public class ${entry.className}Test {

<#if entry.methodList??>
    <#list entry.methodList as method>
    /**
    *
    * Method: ${method.signature}
    */
    @Test
    public void ${method.name}Test() throws Exception {
    }

    </#list>
<#else>

</#if>

}

拓展阅读

idoc-自动生成代码文档

data-factory-自动根据 class 生成测试对象

源码学习

gen-test-plugin 已经开源,你可以点击链接学习相关源码。

如果有对你帮助,可以给个 star 支持一下作者。

posted on   老马啸西风  阅读(2309)  评论(1编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示