【问题标题】:Why would extending JerseyTest vs extending TestCase cause no tests to be found为什么扩展 JerseyTest 与扩展 TestCase 会导致找不到测试
【发布时间】:2011-03-22 23:23:04
【问题描述】:

我正在尝试让 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,所以我假设它是一些其他配置问题。

【问题讨论】:

  • 也许你需要一个用于 maven 的“JerseyTest”插件?
  • 您可能希望将 junit 标签添加到此问题中,以便更多测试人员看到它。

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


【解决方案1】:

任何线索可能导致问题? JerseyTest 应该扩展 TestCase (...)

Jersey 测试框架是 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

【讨论】:

  • 这行得通,同时将我的 Jersey jar 升级到最新版本。我想我有一些 Junit 3.x 和一个 motely Jersey 集合的组合。谢谢!
【解决方案2】:

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

另外,你的测试有点混乱。它有 @Test 这意味着您正在使用 JUnit 4 并且不应该扩展 TestCase。但听起来您在描述中仍然依赖 JUnit 3.8 中的 testXXX 和 TestCase 子类约定。

【讨论】:

    猜你喜欢
    • 2011-04-15
    • 2014-03-30
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多