2

我们正在使用我们的自定义测试运行器,它扩展了 ParentRunner

public class OurTestRunner extends ParentRunner<TestRunnerForOneConfigCase> {...}

class TestRunnerForOneConfigCase extends BlockJUnit4ClassRunner {...}

如何将 @RunWith 与 @RunWith(Parameterized.class) 结合使用的启发,我想OurTestRunner与测试参数一起使用。所以我正在尝试实现工厂:

public class OurTestRunnerFactory implements ParametersRunnerFactory {
  @Override
  public org.junit.runner.Runner createRunnerForTestWithParameters(TestWithParameters test) throws InitializationError {
    return new OurTestRunner(test /* but it takes Class<T> as parameter */); 
  }
}

但是,OurTestRunner它的父类ParentRunner只接受Class<T>as 参数,而不TestWithParameters接受(即它不接受参数)。

ParentRunner兼容的版本Parameterized吗?如果不是,那么扩展我们的设置(无需重写所有内容)的最简单方法是什么?

4

1 回答 1

0

您只能有一个 Test Runner,但您可以这样做:

 public class SimpleExampleTest {

    @Rule
    public Generator<String> params =
        new ListGenerator(asList("alpha", "beta", "gamma"));

    @Test
    public void testSomething() throws Exception {
        assertTrue(params.value().length() >= 4);
    }
}
于 2019-08-09T13:19:45.377 回答