命令行模式下junit4.3测试粒度细化到测试方法

简介:
命令如下:
java -cp  D:\AutoRun\lib\coretestlib\common\junit-4.3.jar;. org.junit.runner.AliJUnitCore com.TestAA(测试Class名) TestCase1(测试方法名)
 
攻略如下
由于事先junit 支持 测试粒度到测试类级别,命令如下
java -cp  D:\AutoRun\lib\coretestlib\common\junit-4.3.jar;. org.junit.runner.JUnitCore com.TestAA
 
但是它支持界面模式下的单方法执行,那么肯定有相应的测试类支持,为此找到了TestMethodRunner的类,同时想到改造org.junit.runner.JUnitCore的main的方法,让它去调用TestMethodRuner改造的方法代码分别如下
    public Result runMain(String... args) {
       System.out.println("JUnit version " + Version.id());
       Class<?> cls = null ;
       Method mes = null;
       List<Failure> missingClasses= new ArrayList<Failure>();
       try {
           cls = Class.forName(args[0]);
            for(int j=0; j< cls.getMethods().length; j++)
            {
               if(cls.getMethods()[j].getName().endsWith(args[1]))
                   mes = cls.getMethods()[j];
            }
       } catch (ClassNotFoundException e1) {
           // TODO Auto-generated catch block
           System.out.println("Could not find class: " + args[0]);
           Description description= Description.createSuiteDescription(args[0]);
           Failure failure= new Failure(description, e1);
           missingClasses.add(failure);
       }
       RunListener listener= new TextListener();
       addListener(listener);
       Result result= run(cls,mes);
       for (Failure each : missingClasses)
           result.getFailures().add(each);
       return result;
 
    }
 
    public Result run(Class<?> cls, Method mes ) {
       Description description;
       description = new Description("开始");
       TestMethodRunner tmr = null;
       try
       {
       tmr = new TestMethodRunner(cls.newInstance(),
                  mes, fNotifier, description);
       }
       catch (Exception e1) {
           System.out.println(e1.getMessage());
       }
       return run(tmr,description);
      
    }
/**
*基本保持原来的函数不变,只是把Runner改成TestMethodRunner
*/
    public Result run(TestMethodRunner runner,Description description) {
       Result result= new Result();
       RunListener listener= result.createListener();
       addFirstListener(listener);
       try {
 
           fNotifier.fireTestRunStarted(description);
           runner.run();
           fNotifier.fireTestRunFinished(result);
       } finally {
           removeListener(listener);
       }
       return result;
    }
 


本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/283241,如需转载请自行联系原作者
相关文章
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
320 1
|
5月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
624 0
|
1月前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
829 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
658 8
|
5月前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
5月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
9月前
|
人工智能 自然语言处理 测试技术
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
AxBench 是由斯坦福大学推出,用于评估语言模型可解释性方法的基准测试框架,支持概念检测和模型转向任务,帮助研究者系统地比较不同控制技术的有效性。
247 5
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
|
8月前
|
Java 测试技术 Android开发
课时148:junit测试工具
课时148介绍了JUnit测试工具的使用,包括定义、配置和编写测试程序。JUnit是流行的用例测试工具,用于确保代码稳定性。
171 0
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架