JUnit 单元测试方法中启用子线程的问题

其实junit是将test作为参数传递给了TestRunner的main函数。并通过main函数进行执行。

test函数在main中执行。如果test执行结束,那么main将会调用System.exit(0);即使还有其他的线程在运行,main也会调用System.exit(0);

System.exit()是系统调用,通知系统立即结束jvm的运行,即使jvm中有线程在运行,jvm也会停止的。所以会出现之前的那种情况。其中System.exit(0);的参数如果是0,表示系统正常退出,如果是非0,表示系统异常退出。

TestRunner 类的 main 方法:

public static void main(String args[]) {
        TestRunner aTestRunner = new TestRunner();
        try {
            TestResult r = aTestRunner.start(args);
            if (!r.wasSuccessful()) {
                System.exit(FAILURE_EXIT);
            }
            System.exit(SUCCESS_EXIT);
        } catch (Exception e) {
            System.err.println(e.getMessage());
            System.exit(EXCEPTION_EXIT);
        }
    }

Original: https://www.cnblogs.com/frankyou/p/14849513.html
Author: FrankYou
Title: JUnit 单元测试方法中启用子线程的问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/540080/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • webpack快速入门(一):安装

    webpack入门系列,从安装到使用再到放弃。。。。全套的哟,呵呵 首先说明,我是一个后端开发,好几年没碰过前端了,想当年写前端的时候jq还是主流,那时的前端还单纯的像个处女一样,…

    Java 2023年6月16日
    065
  • 【spring源码学习】@Aspect 实现切面代码的原理

    一、spring-boot框架中的应用 1、服务启动时,会加载spring-boot-autoconfigure的jar中spring.factories文件,加载服务启动自动装配…

    Java 2023年5月29日
    073
  • Java你可能不知道的事(3)HashMap

    概述 HashMap对于做Java的小伙伴来说太熟悉了。估计你们每天都在使用它。它为什么叫做HashMap?它的内部是怎么实现的呢?为什么我们使用的时候很多情况都是用String作…

    Java 2023年6月13日
    057
  • JavaFx 模拟键盘和鼠标事件

    模拟键盘事件 可实现按键的模拟,包含快捷键 模拟按下 ctrl+v示例代码: val robot = Robot() robot.keyPress(KeyEvent.VK_CONT…

    Java 2023年6月13日
    081
  • vue将字符串中的数字替换为*

    再一次开发中碰到一个问题,为了防止交易双方在备注中互留电话导致诈骗的发生,做了一个自动将备注中的数字替换为*的需求 话不多说,上代码 let output = []; let te…

    Java 2023年6月14日
    066
  • Java的发展史

    在当时,客户端编程所迈出的最重要的一步就是 插件(plug-in) 的开发。通过这种方式,用户可以下载一段代码,并将其插入到浏览器中适当的位置,以此来为浏览器添加新的功能。 插件又…

    Java 2023年5月29日
    072
  • WordPress网站中添加百度统计代码

    百度统计是流量分析平台,帮助收集网站访问数据,提供流量趋势、来源分析、转化跟踪、页面热力图、访问流等多种统计分析服务,同时与百度搜索、百度推广、云服务无缝结合,为网站的精细化运营决…

    Java 2023年6月8日
    084
  • Ubuntu16桌面版编译OpenCV4的java库和so库

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kuberne…

    Java 2023年6月8日
    0100
  • Docker安装canal、mysql进行简单测试与实现redis和mysql缓存一致性

    一、简介 canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库&a…

    Java 2023年6月15日
    0107
  • Mybatis-Plus update不存在的数据返回值一定为零?

    MP update不存在的数据返回值一定为零? 本文分为以下几个部分: 前言 验证过程 结论 前言 ​ MP(mybatis-plus),在 MyBatis 的基础上只做增强不做改…

    Java 2023年6月5日
    083
  • Java语言版的selenium

    最近在学习java 版的selenium,感叹网上是资料相对python语言版的要少很多 J昵称:DANGO的https://www.cnblogs.com/sundalian/c…

    Java 2023年5月29日
    078
  • java 获取类路径下的资源文件

    一、问题 在用freemarker生成word文档的时候,在本地可以成功获取到类路径下的资源文件。但是打了jar包放在linux系统下启动,无法获取到该文件,导致生成的word文档…

    Java 2023年6月16日
    083
  • Linux——走近Linux系统

    一,Linux简介 Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的…

    Java 2023年6月5日
    0111
  • UML的四种关系

    (1)泛化关系 (2)实现关系 (3)依赖关系 (4)关联关系 (5)聚合关系 (6)组合关系 (1)泛化关系 泛化(generalization)关系是一个类(称为子类、子接口)…

    Java 2023年6月5日
    097
  • A JSONObject text must begin with ‘{‘ at 1 [character 2 line 1],将ListString转json(存入redis),json转回ListString

    今天在写项目时,从redis存取数据时报了json格式与List的转换异常: 下面总结一下将ListString转json存入redis,以及从redis取出json转回ListS…

    Java 2023年6月5日
    045
  • org.springframework.web.util.WebUtils.isSameOrigin(WebUtils.java:816)

    Nginx反向代理WebSocket时报这个错,普通的http请求没问题,ws请求报错 可能原因: 1、你用了4.2.5.RELEASE版本或者4.2.6.RELEASE,升级到4…

    Java 2023年5月29日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球