JUnit 5+;ApacheSureFire插件-如何使用自定义侦听器
我正在进行测试的第一步,所以不要太严格 如果我使用ApacheSureFire插件来运行我的测试,我如何在JUnit5中使用我的自定义侦听器?它测试起来很简单,因为我可以使用注释JUnit 5+;ApacheSureFire插件-如何使用自定义侦听器,junit,junit5,maven-surefire-plugin,Junit,Junit5,Maven Surefire Plugin,我正在进行测试的第一步,所以不要太严格 如果我使用ApacheSureFire插件来运行我的测试,我如何在JUnit5中使用我的自定义侦听器?它测试起来很简单,因为我可以使用注释@Listeners,或者用.xml编写我的监听器和测试套件。我找不到工作的决定 我的自定义侦听器: public class OnrTestListener implements TestExecutionListener { private static final Logger LOG = LogMana
@Listeners
,或者用.xml编写我的监听器和测试套件。我找不到工作的决定
我的自定义侦听器:
public class OnrTestListener implements TestExecutionListener {
private static final Logger LOG = LogManager.getRootLogger();
@Override
public void executionSkipped(TestIdentifier testIdentifier, String reason) {
LOG.info("SKIPPED Test by reason: {}", reason);
}
@Override
public void executionStarted(TestIdentifier testIdentifier) {
LOG.info("Test {} successfully started.", testIdentifier.getDisplayName());
}
@Override
public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
if (testExecutionResult.getStatus() != TestExecutionResult.Status.SUCCESSFUL) {
String message = "Page screenshot.";
File screenshot = ScreenshotUtils.takeScreenshot();
ScreenshotUtils.attachToReportPortal(message, screenshot);
}
}
我的附加类屏幕快照
public class ScreenshotUtils {
private static final OnrLogger LOG = new OnrLogger();
private ScreenshotUtils() {
}
public static void attachToReportPortal(String message, File screenshot) {
ReportPortal.emitLog(message, "info", new Date(), screenshot);
}
public static File takeScreenshot() {
return ((TakesScreenshot) DriverFactory.getDriver()).getScreenshotAs(OutputType.FILE);
}
}
我的测试标记了一些注释(因为我找不到制作套件的一些决策),并像这样运行我的测试:
mvn clean test -Dgroups=some_tag
我如何尝试使用我的侦听器:
public class OnrTestListener implements TestExecutionListener {
private static final Logger LOG = LogManager.getRootLogger();
@Override
public void executionSkipped(TestIdentifier testIdentifier, String reason) {
LOG.info("SKIPPED Test by reason: {}", reason);
}
@Override
public void executionStarted(TestIdentifier testIdentifier) {
LOG.info("Test {} successfully started.", testIdentifier.getDisplayName());
}
@Override
public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
if (testExecutionResult.getStatus() != TestExecutionResult.Status.SUCCESSFUL) {
String message = "Page screenshot.";
File screenshot = ScreenshotUtils.takeScreenshot();
ScreenshotUtils.attachToReportPortal(message, screenshot);
}
}
<configuration>
<properties>
<property>
<name>listener</name>
<value>com.google.listeners.OnrTestListener</value>
</property>
<configurationParameters>
junit.jupiter.extensions.autodetection.enabled = true
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = concurrent
junit.jupiter.execution.parallel.config.strategy = fixed
junit.jupiter.execution.parallel.config.fixed.parallelism = 5
</configurationParameters>
</properties>
</configuration>
听众
com.google.listeners.OnrTestListener
junit.jupiter.extensions.autodetection.enabled=true
junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.mode.default=并发
junit.jupiter.execution.parallel.mode.classes.default=concurrent
junit.jupiter.execution.parallel.config.strategy=已修复
junit.jupiter.execution.parallel.config.fixed.parallelism=5
如果有任何帮助,我将不胜感激。谢谢您可以使用SPI机制 将文件
org.junit.platform.launcher.TestExecutionListener
添加到/src/main/resources/META-INF/services/
文件夹中
然后将侦听器的全名{your package}.OnrTestListener
添加到此文件
侦听器将自动应用