Gradle 中的 JUnit 侦听器配置
JUnit Listener Configuration In Gradle
我是 Gradle 的新蜜蜂。拥有自定义 JUnit Listener,它读取自定义注释数据并生成报告,需要将其配置为 Gradle 的一部分。在 Gradle 4.4.
中是否有配置下面的 surefire 插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>my.company.MyRunListener</value>
</property>
</properties>
</configuration>
</plugin>
我明白,可能无法像 gradle 那样使用 maven 插件。我检查了 TestListener,它不支持读取注释以继续进行。
我想了解如何在 Gradle 中配置我的 JUnit 监听器。
恐怕目前不支持JUnit RunListener
s in Gradle. There is only an open ticket requesting that feature: https://github.com/gradle/gradle/issues/1330
由于某人在那张票上有 mentioned in the comments,“主要问题 […] 是 Gradle 中缺少 TestDescriptor.getAnnotations()
”;否则你 可能 已经能够将你的 RunListener
重写为 Gradle TestListener
。因此,除非我在浏览票证时遗漏了一些东西,否则看来你现在大多运气不好:-(
JUnit Foundation library enables you to declare your listeners in a service provider configuration file, which are then attached automatically - regardless of execution environment. Details can be found here.
Gradle JUnit 基础配置
// build.gradle
...
apply plugin: 'maven'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenLocal()
mavenCentral()
...
}
dependencies {
...
compile 'com.nordstrom.tools:junit-foundation:12.2.0'
}
ext {
junitFoundation = configurations.compile.resolvedConfiguration.resolvedArtifacts.find { it.name == 'junit-foundation' }
}
test.doFirst {
jvmArgs "-javaagent:${junitFoundation.file}"
}
test {
// debug true
// not required, but definitely useful
testLogging.showStandardStreams = true
}
ServiceLoader
提供商配置文件
# src/main/resources/META-INF/services/com.nordstrom.automation.junit.JUnitWatcher
com.example.MyRunListener
使用此配置,由 MyRunListener
实现的侦听器将自动附加到提供的 RunNotifier
到 JUnit 运行程序的 run()
方法。此功能消除了各种测试执行环境(如 Maven、Gradle 和本机 IDE 测试运行器)之间的行为差异。
我是 Gradle 的新蜜蜂。拥有自定义 JUnit Listener,它读取自定义注释数据并生成报告,需要将其配置为 Gradle 的一部分。在 Gradle 4.4.
中是否有配置下面的 surefire 插件<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>my.company.MyRunListener</value>
</property>
</properties>
</configuration>
</plugin>
我明白,可能无法像 gradle 那样使用 maven 插件。我检查了 TestListener,它不支持读取注释以继续进行。
我想了解如何在 Gradle 中配置我的 JUnit 监听器。
恐怕目前不支持JUnit RunListener
s in Gradle. There is only an open ticket requesting that feature: https://github.com/gradle/gradle/issues/1330
由于某人在那张票上有 mentioned in the comments,“主要问题 […] 是 Gradle 中缺少 TestDescriptor.getAnnotations()
”;否则你 可能 已经能够将你的 RunListener
重写为 Gradle TestListener
。因此,除非我在浏览票证时遗漏了一些东西,否则看来你现在大多运气不好:-(
JUnit Foundation library enables you to declare your listeners in a service provider configuration file, which are then attached automatically - regardless of execution environment. Details can be found here.
Gradle JUnit 基础配置
// build.gradle
...
apply plugin: 'maven'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenLocal()
mavenCentral()
...
}
dependencies {
...
compile 'com.nordstrom.tools:junit-foundation:12.2.0'
}
ext {
junitFoundation = configurations.compile.resolvedConfiguration.resolvedArtifacts.find { it.name == 'junit-foundation' }
}
test.doFirst {
jvmArgs "-javaagent:${junitFoundation.file}"
}
test {
// debug true
// not required, but definitely useful
testLogging.showStandardStreams = true
}
ServiceLoader
提供商配置文件
# src/main/resources/META-INF/services/com.nordstrom.automation.junit.JUnitWatcher
com.example.MyRunListener
使用此配置,由 MyRunListener
实现的侦听器将自动附加到提供的 RunNotifier
到 JUnit 运行程序的 run()
方法。此功能消除了各种测试执行环境(如 Maven、Gradle 和本机 IDE 测试运行器)之间的行为差异。