命令行模式下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,如需转载请自行联系原作者
相关文章
|
28天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
45 4
|
3月前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
68 1
|
3月前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
2月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
37 6
|
2月前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
52 6
|
2月前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
269 2
|
3月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
37 5
|
3月前
|
测试技术 Python
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
本文介绍了使用Python的unittest框架来加载测试用例的四种方法,包括通过测试用例类、模块、路径和逐条加载测试用例。
103 0
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
|
5月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
4月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
83 6