2010-06-12 100 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註釋對其進行註釋。