如何一次运行我所有的内部类junit测试

时间:2012-01-31 10:10:09

标签: java eclipse junit

我已根据所描述的方法使用每个方法使用一个内部类来组织我的junit测试:

Here, in a haacked article (about nunit testing)
Here, in this SO question

public class TestMyThing {

    public static class TestMyThingMethodOne {

        @Test
        public void testMethodOneDoesACertainBehaviour() {
            // terse, clear testing code goes here
        }

        @Test
        public void testMethodOneHasSomeOtherDesiredBehaviour() {
            // more inspiring testing code here
        }
    }

    public static class TestMyThingMethodTwo {
        ... etc
    }
}

但是,当我尝试为此运行junit测试时,Eclipse会询问我要运行哪些内部类测试,而我只能选择一个。有没有一种方法可以指定我希望每个内部类中的每个测试都能运行TestMyThing类?

2 个答案:

答案 0 :(得分:7)

我在this post的Eclipse论坛上问了我的问题,结果证明Eclipse可以运行所有内部类。我引用了我已经尝试过的回复,并且可以确认它的效果很好(即我可以使用一个命令调用内部类中的所有测试):

  

JUnit 4带有一个名为Enclosed的跑步者类,它可以满足你的需要。

     

使用注释外部类   @RunWith(Enclosed.class)   with Enclosed =   import org.junit.experimental.runners.Enclosed;

答案 1 :(得分:3)

通常你只需要创建单独的类(只使用默认构造函数的pojos),而不是将不同的单元测试打包到单个类中。由于你的内部类是静态的,所以这样做没有真正的优势。