Java JUnit框架里@Category注解的工作原理-阿里云开发者社区

开发者社区> 开发者小助手-bz4> 正文

Java JUnit框架里@Category注解的工作原理

简介: Java JUnit框架里@Category注解的工作原理
+关注继续查看

Suppose you have a large number of unit test cases and you don’t want them to be executed all at the same time during Maven build. You can simply achieve it via annotation @Category.


(1) Create empty class FastTests and SlowTests.

(2) In your test case class, categorize your test method using @Category annotation:



image.png

(3) Append the following code to your pom.xml:

 

  SlowTests

 

   com.sap.SlowTests

 

 

 

  FastTests

 

   com.sap.FastTests

 

 

 

 

   org.apache.maven.plugins

   maven-compiler-plugin

   3.1

   

    1.8

    1.8

   

 

 

   org.apache.maven.plugins

   maven-surefire-plugin

   2.13

   

   

     org.apache.maven.surefire

     surefire-junit47

     2.13

   

   

   

    ${testcase.groups}

   

 

 

(4) In my project, by default all 7 test methods will be executed during Maven build:

image.png

Suppose you only want to execute unit test belonging to category “SlowTests”, use the following command line:


image.png

Since now I only marked one method with annotation SlowTests, only one test method is executed:

image.png

If you would like to execute all unit tests EXCEPT @SlowTests, simply add another profile in pom.xml:

  NonSlowTests

 

   

   

     org.apache.maven.plugins

     maven-surefire-plugin

     

      com.sap.SlowTests

     

   

   

 

 

Before test, in order to prove that Slow method is NOT really executed, I add a system.out.println in each method:


image.png

Use command line: mvn test -P NonSlowTests

From console output, I can ensure that the method with @Category(SlowTests.class) is NOT executed at all.


image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
我为什么要放弃 RESTful,选择拥抱 GraphQL
REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。
11 0
面试突击18:为什么ConcurrentHashMap是线程安全的?
ConcurrentHashMap是HashMap的多线程版本,HashMap在并发操作时会有各种问题,比如死循环问题、数据覆盖等问题。而这些问题,只要使用ConcurrentHashMap就可以完美解决了,那问题来了,ConcurrentHashMap是如何保证线程安全的?它的底层又是如何实现的?接下来我们一起来看。
4 0
微服务架构 | *2.5 Nacos 长轮询定时机制的源码分析
为方便理解与表达,这里把 Nacos 控制台和 Nacos 注册中心称为 Nacos 服务器(就是 web 界面那个),我们编写的业务服务称为 Nacso 客户端; 由于篇幅有限,这里将源码分析分为上下两篇,其中上篇讲获取配置与事件订阅机制,下篇讲长轮询定时机制;在《微服务架构 | 2.2 Alibaba Nacos 的统一配置管理》中提到一张 Nacos 动态监听的长轮询机制原理图,本篇将围绕这张图剖析长轮询定时机制的原理;
5 0
类的加载过程(建议收藏)
类的加载过程(建议收藏)
4 0
ECS使用体验
使用阿里云服务器搭建个人博客网站
3 0
听说 Spring AOP 有坑?那就来踩一踩
前言 前几日,有朋友分享了这样一个案例: 原来的项目一直都正常运行,突然
13 0
我为什么要放弃 RESTful,选择拥抱 GraphQL
REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。
22 0
【保姆级教程】Spring Boot 单元测试
【保姆级教程】Spring Boot 单元测试 一、 单元测试的概念 概念: \1. 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。在Java中单元测试的最小单元是类。
11 0
2315
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载