博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
命令行模式下junit4.3测试粒度细化到测试方法
阅读量:6681 次
发布时间:2019-06-25

本文共 1976 字,大约阅读时间需要 6 分钟。

命令如下:
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/282600,如需转载请自行联系原作者
你可能感兴趣的文章
Linux 系统中用户切换(su user与 su - user 的区别)
查看>>
微信订阅号消息回复测试
查看>>
数据库 Proc编程二
查看>>
zabbix-agent 自动注册
查看>>
基于3D Vision眼镜的OSG立体显示 【转】
查看>>
java.lang.AbstractStringBuilder.enlargeBuffer
查看>>
HTML5新增与结构有关的元素
查看>>
C# 复制和克隆认识浅谈
查看>>
Python和Flask真强大:不能错过的15篇技术热文(转载)
查看>>
【LeetCode】Swap Nodes in Pairs 链表指针的应用
查看>>
Swift,Objective-C语言性能对照測试
查看>>
[Node] Using dotenv to config env variables
查看>>
Easyui的numberbox无法输入以0开头的数字编号(转载)
查看>>
网页截图工具CutyCapt
查看>>
Android Jni Android.mk经常使用语句
查看>>
word2vec 中的数学原理详解
查看>>
BZOJ 4128 Matrix BSGS+矩阵求逆
查看>>
内存管理:栈区,堆区,全局区,文字常量区,程序代码区
查看>>
《影响力》6个使人顺从的武器之一互惠原理深入剖析
查看>>
Guava学习之Preconditions
查看>>