2010-06-12 228 views
8

在Eclipse中使用JUnit 4.5时遇到了一些困难,当我使用@Before注解时它什么都不做(我可能会使用setUp(),当然这很有用,但我只是想知道是错误的),虽然它在Netbeans中完美运行..任何想法?Eclipse JUnit @Before注解问题

+1

发布示例测试,以便我们可以看看 – skaffman 2010-06-12 20:53:55

+4

您是否在扩展TestCase?如果是这样,我认为它忽略注释。 – Pace 2010-06-12 20:53:58

+0

你是否为你的项目指定了好的jar? – Aif 2010-06-12 20:54:54

回答

2

如果您使用的是JUnit 4,那么只需使用@Test注释来注释测试类或测试方法,而不是扩展TestCase。

+0

他在询问@Before注释,他没有提到有关无法运行的测试的任何信息。 – 2012-01-18 19:59:57

+0

尽管这是正确的,但这并没有解决OP询问的问题。 – 2014-07-20 08:29:08

4

因为我在这里凸轮通过谷歌搜索,并有挖非常深一点,看看实际的解决方案: 作为@Pace在评论中说,如果你extend TestCase,Eclipse的把测试作为JUnit版本3或以上和不尊重@Before注解 - 在这里也descripred:JUnit + Maven + Eclipse: Why @BeforeClass does not work?

因此,由于您使用JUnit 4+有写测试用例两种方法去除extend TestCase原因解决问题

2

1>您的测试课程为extend TestCase。在这种情况下,拾取对应于Junit 3的类别,其不知道@Before注释。在这种情况下,您必须覆盖

/** 
* Sets up the fixture, for example, open a network connection. 
* This method is called before a test is executed. 
*/ 
protected void setUp() throws Exception { 
} 

2>使用注释。对测试类中的方法使用@Test注释,您有兴趣将其作为测试运行。您的班级不需要extend TestCase。你也不必重写任何方法。只需定义您自己的方法,即在测试方法运行之前具有要执行的逻辑,并使用@Before注释对其进行注释。