junit4为什么一次性把所有方法执行光了?

kevinmy 2011-12-26 08:51:55
我在某个方法上右键->run as junit 但是不止这个方法,所有的方法都运行了

我在outline上右键->run as junit 也是一样

我知道把方法名的test去掉可以不执行方法,但是除了这个方法还有其它的好的方法吗?
...全文
318 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhyerr 2012-07-23
  • 打赏
  • 举报
回复
满足junit4只执行一个方法的条件:
1、不要继承TestCase类,因为那是junit3才使用的方式,如果你继承了,即使写了@Ignore注释也同样会执行所有的语句。
2、方法没有必要再写成testAdd\testQuery等名称了,直接add\query就可以了,直接在前面注释@Ignore就是不执行,@Test就是执行。

注释这部分都说了,你仍然全部都执行的原因可能就是仍然继承了TestCase类。我开始就是这样,看了说明试了一下才知道。
如果还有问题再讨论吧。希望能帮到你。
dddsfdfgfdgfdg 2012-07-23
  • 打赏
  • 举报
回复
不管选中那段代码 最终是执行整个类的方法 用@Ignore可以忽略该方法
dxqrr 2012-07-23
  • 打赏
  • 举报
回复
在package explorer视图中,点击那个类就可以展开里面的方法
然后在方法上右击-run as junit,然后你懂的
看着奢扣 2011-12-27
  • 打赏
  • 举报
回复
2楼能解释一下那几行代码吗
mikescofied 2011-12-26
  • 打赏
  • 举报
回复
好像用@Test标签可以单个方法执行
huntor 2011-12-26
  • 打赏
  • 举报
回复
还可以这样:(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 {
}
huntor 2011-12-26
  • 打赏
  • 举报
回复
@Ignore

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧