为什么Junit单元测试不能执行带@Test 的用例

    前段时间,以救火队员的身份去帮助公司的测试小组写自动化测试项目。对于这个自动化测试项目,准确来说应该算接口的自动化测试,我的理解就是用代码构建完整的逻辑,代替人工去页面上点点点。

    很快我就发现,公司自己封装的项目体系是不能使用@Test,@Before、@After注解的,所有的方法都需要以test开头,比如testSaveUser……心里想着,这不是Junit3.x的写法吗?然后我去看了项目所引用的Junit版本的确是4.1.2。作为救火队员的我也没有时间去深究到底为什么,先按照现有的这种写法写吧,但是个人的习惯还是让我给自己写的用例添加了@Test注解。

    项目快结束的时候,终于有时间去解决这些遗留的问题了。我发现在封装的底层方法中继承了TestCase这个类,这个是Junit3.x中的写法啊,问题可能就是合理了。大胆的去把这个TestCase去掉,然后去执行所有的用例,果然只有我写的用例执行了。跟测试组的老大交流之后,他知道这个问题,但是一直不知道怎么解决,我就这样解决了一个遗留问题:)……

   下面概括下Junit注解的含义:

    @Test:要执行的用例,只有添加了这个注解,用例才会被执行;

    @Ignore: 不执行的用例,只要添加了这个注解,用例就不会被执行;

    @Before :在方法执行之前执行,类似Junit3.x中setUp方法;

    @After:在方法执行之后执行,类似于Junit3.x中的tearDown方法;

    @BeforeClass:在所有的方法执行前执行;

    @AfterClass:在所有方法后执行;

一个完整的用例的执行顺序:

    @BeforeClass ->@Before->@Test->@After ->@AfterClass

你可能感兴趣的:(java)