我们有很多独立模块(比方说X),所有X模块都有
只要开发人员使用Jenkins构建模块,测试用例就会执行。我正在构建一个UI仪表板来显示每个模块的测试用例结果。在此仪表板中,我将展示许多其他内容。因此,测试用例的结果只是一个列。
问题:我需要一个工具/插件,通过它我可以将junit结果保存在数据库中,当时它是通过jenkins构建的。是否可能或者我是否需要编写自己的java程序?
答案 0 :(得分:2)
据我所知,没有任何插件或类似内容。
您必须自己实施。如果是JUnit,您可以实现TestWatcher:
@Rule
public TestWatcher watchman = new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
// Store result in DB
}
@Override
protected void succeeded(Description description) {
// Store result in DB
}
};
如果您不想更改每项测试,则应该查看RunListener。
testStarted(Description description)
和testFinished(Description description)
是要实施的方法。
使用maven,您可以使用surefire插件,但it have to be 2.7 or newer。
答案 1 :(得分:1)
您可以通过实施org.testng.IReporter
来实现这一目标。
IReporter界面只有一种方法:
public void generateReport(List<ISuite> suites, String outputDirectory)
当所有套件都已运行时,TestNG将调用此方法。
另一个替代方案是实现接口ITestListener
侦听器或扩展TestListenerAdapter
。
public class MyTestListener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult tr) {
//do the needful
}
@Override
public void onTestSkipped(ITestResult tr) {
//do the needful
}
@Override
public void onTestSuccess(ITestResult tr) {
//do the needful
}
您可以参考TestNG documentation了解更多详情。