作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要编写许多测试。我扩展了 JUnit 的 Suite Runner,以便能够添加新的注释,其中我可以提到几个先决条件类,这些类将在执行任何测试或设置之前执行。我的典型测试如下所示。
@RunWith(CustomSuiteRunner.class)
@BeforeSuite(Prerequisite.class)
@AfterSuite(CleanupOperations.class)
@Suite.SuiteClasses({
SimpleTests.class,
WeatherTests.class
})
public class SimpleSuite {
}
我已经重写了 public void run(final RunNotifier notifier)
以添加触发 BeforeSuite 和 AfterSuite 注释中提到的先决条件和清理操作所需的代码。
现在,我试图找出如何通过扩展 BlockJUnit4Runner
来实现相同的目的?我找不到任何与 run 等效的方法来启动执行以覆盖行为。 runChild 在子进程执行之前被触发。
我正在寻找这个的原因是我正在尝试在接口(interface)中创建几个规则并让我的测试实现这些规则以便它们可用,但是由于接口(interface)元素是静态的并且最终的 JUnit 会忽略这些规则。在我今天问的另一个问题中,我得到的答案是,我可以通过扩展 BlockJUnit4Runner 并覆盖 getTestRules()
使 JUnit 考虑接口(interface)中提到的规则。
所以,这就是我正在尝试找出的内容。
最佳答案
很有可能扩展 BlockJUnit4Runner 并使其获取测试列表并将它们作为套件运行,并在扩展的 runChild() 方法中处理所需的测试依赖项
public class CustomRunner extends BlockJUnit4ClassRunner {
private List<String> testsToRun = Arrays.asList(new String[] { “sample1” });
public CustomRunner(Class<?> klass) throws InitializationError {
super(klass);
}
public void runChild(FrameworkMethod method, RunNotifier notifier) {
//Handle any dependency logic by creating a customlistener registering notifier
super.runChild(method,notifier);
}
}
关于java - 在定义一些测试规则时从 Suite Runner 与 BlockJUnit4Runner 进行扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105175/
我是一名优秀的程序员,十分优秀!