您的位置:首页 > 其它

Junit调查记录

2016-02-22 11:05 309 查看
开发时想测试下的话还要专门写个main函数来调用太麻烦了,于是想用用Junit。结果碰到了许多问题。

1.几个Test怎么不按顺序来呢?

import org.junit.Test;

public class JunitDemo {
@Test
public void test1(){
System.out.println("this t1");
}
@Test
public void test2(){
System.out.println("this t2");
}
@Test
public void test3(){
System.out.println("this t3");
}
@Test
public void test4(){
System.out.println("this t4");
}
@Test
public void test5(){
System.out.println("this t5");
}
@Test
public void test36(){
System.out.println("this t6");
}

}


我按以上代码进行测试,发现结果为:



反复多次重试仍是如此。为什么呢?百度后我才知道答案,原来这些test方法仍是简单地根据反射API返回的顺序来执行。所以才会出现虽然不按顺序但每次都这么排序的情况。

2.如何让Test按顺序来呢?

有三个注解可供选择:

@FixMethodOrder(MethodSorters.DEFAULT) 

@FixMethodOrder(MethodSorters.NAME_ASCENDING) 

@FixMethodOrder(MethodSorters.JVM) 
分别是默认顺序,方法名排序顺序,按照JVM返回顺序。但当我要实际试试时发现完全用不了,报错是什么情况:



百度后根据位置:org.junit.FixMethodOrder发现我用的Junit没有这货,进一步,我查到排序得要Junit4.11后才支持我用的是Junit4。于是我在http://download.csdn.net/detail/luzle/6915487,下4.11再试。

这回包是有了可还是有错:



我分明找着这货了,为什么报错啊





默默的去下源码,顺道试试Maven这个插件的下源码功能:包上右键->Maven->DownLoadSource,然后就是无尽的等待

根本用不了啊,我还不如自己去下源码呢!不过下jar包一般会带的,这个sources就是,直接attachSource到它就行了。



打开源码发现该有的都有啊,那为什么不行呢?搞了老半天无意间Ctrl+Alt+o自动导包后错误就没了!靠原来我先是自动纠错里选的导入包,后一个错误没有纠错。但其实只是缺包而已。

总之我再用Ctrl+Alt+o以外的方法导包我就是狗!

全都正常了但是实测仍不可用!三个注释用后都其结果每次都是不一样的乱序,好吧至少用不用注释是不同的!这个问题以后再研究了,估计是版本太旧。

3.如何只执行单个Test呢?

右键->runConfigration选择TestMethod即可

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Junit没法排序