命令行模式下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.JUnitCoremain的方法,让它去调用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;

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值