我正在考虑将硒测试的详细报告生成。我想实现的是类似于robot-framework生成的报告,即:在测试执行过程中调用的每个方法提供成功或失败的信息。Java/JUnit - 跟踪每个通过和失败的方法
所以,如果测试方法是:
@Test
public void sampleTest() {
LoginToApp.logInAsAdmin();
Tree.selectOnTree("something");
Misc.takeScreenshot("file.png");
}
logInAsAdmin()调用一些其他方法:
public static void logInAsAdmin() {
logIn(getAdminUserName(), getAdminPass());
Click.clickElementByTestId("test");
}
selectOnTree()也:
public static void selectOnTree(String elementId) {
findPathToElement(elementId);
Click.clickElementByTestId(elementId);
}
,并且例如,单击树项时测试失败(因此,selectOnTree()中的clickElementByTestId()失败)。我想用所有执行的方法获得很好的报告,提供哪些方法称为它的信息(调用的层次结构很重要)。某事像:
sampleTest - FAILED
logInAsAdmin - PASSED
logIn - PASSED
clickElementByTestId - PASSED
selectOnTree - FAILED
findPathToElement - PASSED
clickElementByTestId - FAILED
从JUnit的使用TestWatcher是不够的,因为它仅提供了测试方法的名称失败,并没有关于后续的方法调用的信息。一种简单但不方便的方法是简单地修改每种方法,将其“执行状态”发送给某种记者。有没有其他更优雅的方法可以达到同样的效果?