我在某个方法上右键->run as junit 但是不止这个方法,所有的方法都运行了我在outline上右键->run as junit 也是一样我知道把方法名的test去掉可以不执行方法,但是除了这个方法还有其它的好的方法吗?

解决方案 »

  1.   

    还可以这样:(Junit4.10)
    public interface FastTests {
     }
            
     public interface SlowTests {
     }
     
     public static class A {
            @Test
            public void a() {
                    fail();
            }
     
            @Category(SlowTests.class)
            @Test
            public void b() {
            }
     }
     
     @Category( { SlowTests.class, FastTests.class })
     public static class B {
            @Test
            public void c() {
     
            }
     }
     
     @RunWith(Categories.class)
     @IncludeCategory(SlowTests.class)
     @SuiteClasses( { A.class, B.class })
     // Note that Categories is a kind of Suite
     public static class SlowTestSuite {
     }
      

  2.   

    好像用@Test标签可以单个方法执行
      

  3.   

    满足junit4只执行一个方法的条件:
    1、不要继承TestCase类,因为那是junit3才使用的方式,如果你继承了,即使写了@Ignore注释也同样会执行所有的语句。
    2、方法没有必要再写成testAdd\testQuery等名称了,直接add\query就可以了,直接在前面注释@Ignore就是不执行,@Test就是执行。注释这部分都说了,你仍然全部都执行的原因可能就是仍然继承了TestCase类。我开始就是这样,看了说明试了一下才知道。
    如果还有问题再讨论吧。希望能帮到你。
      

  4.   

    在package explorer视图中,点击那个类就可以展开里面的方法
    然后在方法上右击-run as junit,然后你懂的
      

  5.   

    不管选中那段代码 最终是执行整个类的方法 用@Ignore可以忽略该方法