【问题标题】:How to add a JUnit 4 test that doesn't extend from TestCase to a TestSuite?如何添加不从 TestCase 扩展到 TestSuite 的 JUnit 4 测试?
【发布时间】:2010-09-17 17:03:12
【问题描述】:

在 JUnit 3 中我简单地调用了

suite.addTestSuite( MyTest.class )

但是,如果 MyTest 是不扩展 TestCase 的 JUnit 4 测试,则此方法不起作用。我应该怎么做才能创建一套测试?

【问题讨论】:

    标签: java junit junit3


    【解决方案1】:

    对于需要与新的 v4 样式共存的大量 3.8 样式套件/测试,您可以执行以下操作:

    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    
    @RunWith(Suite.class)
    @Suite.SuiteClasses({
      // Add a JUnit 3 suite
      CalculatorSuite.class,
      // JUnit 4 style tests
      TestCalculatorAddition.class,
      TestCalculatorDivision.class
    })
    public class CalculatorSuite {
        // A traditional JUnit 3 suite
        public static Test suite() {
            TestSuite suite = new TestSuite();
            suite.addTestSuite(TestCalculatorSubtraction.class);
            return suite;
        }
    }
    

    【讨论】:

    • 执行此操作时出现异常class xy contains itself as a SuiteClass
    【解决方案2】:

    自己找到了答案:here

    像这样:

    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    
    @RunWith(Suite.class)
    @Suite.SuiteClasses({
      TestCalculatorAddition.class,
      TestCalculatorSubtraction.class,
      TestCalculatorMultiplication.class,
      TestCalculatorDivision.class
    })
    public class CalculatorSuite {
        // the class remains completely empty, 
        // being used only as a holder for the above annotations
    }
    

    【讨论】:

      猜你喜欢
      • 2013-11-04
      • 2012-03-05
      • 2019-06-08
      • 2011-03-22
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      相关资源
      最近更新 更多