为什么扩展JerseyTest与扩展TestCase会导致无法找到测试

时间:2010-07-29 21:15:44

标签: java unit-testing maven-2 junit jersey

我试图让Jersey测试框架正常工作。我们正在使用maven 1.x进行构建。我创建了以下测试用例...

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,所以我认为它是其他一些配置问题。

2 个答案:

答案 0 :(得分:1)

  

有什么可能导致问题的线索? JerseyTest应该扩展TestCase(...)

泽西岛测试框架是build over JUnit 4.x所以,不,它没有。

要使用Maven 1.x运行JUnit 4.x测试,您必须:

  • 在依赖项中添加Junit 4.X

  • 在测试类中使用JUnit4TestAdapter:

    /**
     * @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

答案 1 :(得分:0)

您使用的是什么版本的JerseyTest?最新版本依赖于JUnit 4,并且不会扩展TestCase。

此外,您的测试有点令人困惑。它有@Test意味着你正在使用JUnit 4,不应该扩展TestCase。但听起来你仍然依赖于你的描述中JUnit 3.8的testXXX和TestCase子类约定。