我们正在使用我们的自定义测试运行器,它扩展了ParentRunner:
public class OurTestRunner extends ParentRunner<TestRunnerForOneConfigCase> {...}
class TestRunnerForOneConfigCase extends BlockJUnit4ClassRunner {...}
受how to combine @RunWith with @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>
作为参数,而不是TestWithParameters
(即它不接受参数)。
ParentRunner
的版本是否与Parameterized
兼容?如果没有,扩展我们的设置的最简单方法是什么(不重写所有内容)?
答案 0 :(得分: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);
}
}