2010-07-29 85 views
1

我正試圖讓Jersey測試框架工作。我們正在使用maven 1.x構建。我創建了以下測試用例...爲什麼要擴展JerseyTest vs擴展TestCase導致沒有測試被發現

public class SomeResourceTest extends JerseyTest 
{ 
    public SomeResourceTest() throws Exception 
    { 
     super(new WebAppDescriptor.Builder(PACKAGE_NAME) 
         .contextPath(PATH).build()); 
    }  
    @Test 
    public void testSomething() 
    { 
     Assert.assertEquals(true, true); 
    } 
} 

當我建,我沒有得到任何的SomeResourceTest發現測試。

現在,當我將測試用例更改爲junit.framework.TestCase時,測試運行得很好。

任何線索可能導致問題的原因是什麼? JerseyTest應該延伸TestCase,所以我假設它是一些其他配置問題。

+0

也許你需要Maven的「JerseyTest」插件? – 2010-07-29 21:19:50

+0

您可能希望將junit標籤添加到此問題中,以便更多測試人員可以看到它。 – 2010-07-29 22:57:55

回答

1

任何線索可能導致問題的原因是什麼? JerseyTest應該擴展TestCase(...)

澤西島測試框架是build over JUnit 4.x所以,不,它不。

運行與Maven的1.x的JUnit 4.x的測試,你必須:

  • 您關聯

  • 使用添加JUnit4TestAdapter中4.X的Junit在你的測試類:

    /** 
    * @return instance of this as Junit test case 
    */ 
    public static junit.framework.Test suite() 
    { 
        return new JUnit4TestAdapter(MyTestClass.class); 
    } 
    
  • 使用JDK 5+

請參閱http://jira.codehaus.org/browse/MPTEST-65

+0

這工作,隨着我的澤西瓶最新的。我認爲我有一些Junit 3.x和Jersey Jersey集合。謝謝! – 2010-07-30 14:47:11

0

您使用的是什麼版本的JerseyTest?最新版本依賴於JUnit 4,不擴展TestCase。

此外,您的測試有點混亂。它有@Test,暗示你正在使用JUnit 4,不應該擴展TestCase。但聽起來您仍然依賴於JUnit 3.8中的testXXX和TestCase子類慣例。