From 100d37e355e4535340ceb71c64f9a74a75c51291 Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Fri, 8 May 2020 14:13:45 +0200 Subject: [PATCH 01/25] Refactored to new ExecutionContext getter --- .../plugins/teamcity/listener/TeamCityEventListener.java | 4 ++-- .../plugins/teamcity/worker/TeamCityStatusReportWorker.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java index e57cbba..2be3868 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java @@ -28,7 +28,7 @@ import eu.tsystems.mms.tic.testframework.report.utils.ReportUtils; import eu.tsystems.mms.tic.testframework.utils.StringUtils; -import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.EXECUTION_CONTEXT; +import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.getCurrentExecutionContext; /** * Listener to react for method context update events @@ -59,7 +59,7 @@ public void fireEvent(TesterraEvent testerraEvent) { counterInfoMessage = "Running"; } - final String teamCityMessage = ReportUtils.getReportName() + " " + EXECUTION_CONTEXT.runConfig.RUNCFG + ": " + counterInfoMessage; + final String teamCityMessage = ReportUtils.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": " + counterInfoMessage; messagePusher.updateProgressMessage(teamCityMessage); } } diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java index aa0e069..bb7726c 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java @@ -26,7 +26,7 @@ import eu.tsystems.mms.tic.testframework.report.TestStatusController; import eu.tsystems.mms.tic.testframework.report.utils.ReportUtils; -import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.EXECUTION_CONTEXT; +import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.getCurrentExecutionContext; /** * Reports global build status to teamcity @@ -43,7 +43,7 @@ public class TeamCityStatusReportWorker extends GenerateReportsWorker { @Override public void run() { - String statusMessage = ReportUtils.getReportName() + " " + EXECUTION_CONTEXT.runConfig.RUNCFG + ": "; + String statusMessage = ReportUtils.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": "; statusMessage += TestStatusController.getFinalCountersMessage() + " "; // There is a difference in build status depending on failure corridor active From 2972254d34fa5beeedf717558735b7572bde1534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Wed, 24 Jun 2020 17:42:30 +0200 Subject: [PATCH 02/25] : Add bintray publish support --- build.gradle | 42 ++++++++----------------- jcenter/bintray.gradle | 61 ++++++++++++++++++++++++++++++++++++ jcenter/maven-install.gradle | 44 ++++++++++++++++++++++++++ pom.xml | 53 ------------------------------- release-bintray.gradle | 34 ++++++++++++++++++++ 5 files changed, 152 insertions(+), 82 deletions(-) create mode 100644 jcenter/bintray.gradle create mode 100644 jcenter/maven-install.gradle delete mode 100644 pom.xml create mode 100644 release-bintray.gradle diff --git a/build.gradle b/build.gradle index 1330bee..d389736 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,20 @@ +plugins { + id "com.jfrog.bintray" version "1.8.5" +} + apply plugin: 'java' apply plugin: 'maven' apply plugin: 'maven-publish' -group 'eu.tsystems.mms.tic.testerra' -version '1-SNAPSHOT' - -project.ext { - testerraVersion = '1-SNAPSHOT' -} +ext { + testerraVersion = '1.+' + moduleVersion = '1-SNAPSHOT' + if (System.properties.containsKey('moduleVersion')) { + moduleVersion = System.getProperty('moduleVersion') + } -repositories { - mavenCentral() + group 'eu.tsystems.mms.tic.testerra' + version moduleVersion } dependencies { @@ -21,25 +25,5 @@ test { useTestNG() } -allprojects { - - publishing { - publications { - mavenJava(MavenPublication) { - from components.java - } - } - - repositories { - maven { - url System.getProperty("deployUrl", "none") - credentials { - username System.getProperty("deployUsername", "none") - password System.getProperty("deployPassword", "none") - } - } - } - } -} - +apply from: rootProject.file('release-bintray.gradle') diff --git a/jcenter/bintray.gradle b/jcenter/bintray.gradle new file mode 100644 index 0000000..26cf4da --- /dev/null +++ b/jcenter/bintray.gradle @@ -0,0 +1,61 @@ +apply plugin: 'com.jfrog.bintray' + +version = libraryVersion + +allprojects { + + publishing { + + task sourcesJar(type: Jar, dependsOn: classes) { + archiveClassifier.set('sources') + from sourceSets.main.allSource + } + + artifacts { + archives sourcesJar + } + + publications { + mavenJava(MavenPublication) { + from components.java + artifact sourcesJar + } + } + + repositories { + maven { + url System.getProperty("deployUrl", "none") + credentials { + username System.getProperty("deployUsername", "none") + password System.getProperty("deployPassword", "none") + } + } + } + } +} + +bintray { + user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getProperty('BINTRAY_USER') + key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getProperty('BINTRAY_API_KEY') + + configurations = ['archives'] + publish = true + pkg { + repo = bintrayRepo + name = bintrayName + desc = libraryDescription + + websiteUrl = siteUrl + vcsUrl = gitUrl + issueTrackerUrl = issueUrl + licenses = allLicenses + labels = ['testerra', 'java', 'selenium', 'testng', 'test', 'testautomation', 'framework'] + publicDownloadNumbers = true + version { + desc = libraryDescription + } + } +} + +bintrayUpload.dependsOn assemble +bintrayUpload.dependsOn sourcesJar diff --git a/jcenter/maven-install.gradle b/jcenter/maven-install.gradle new file mode 100644 index 0000000..9fadc15 --- /dev/null +++ b/jcenter/maven-install.gradle @@ -0,0 +1,44 @@ +group = publishedGroupId // Maven Group ID for the artifact + +install { + repositories.mavenInstaller { + // This generates POM.xml with proper parameters + pom.project { + packaging packagingType + groupId publishedGroupId + artifactId artifact + + // Add your description here + name libraryName + description libraryDescription + url siteUrl + + // Set your license + licenses { + license { + name licenseName + url licenseUrl + } + } + developers { + developer { + id developerId + name developerName + email developerEmail + } + } + scm { + connection gitUrl + developerConnection gitUrl + url siteUrl + } + + // Iterate over the compile dependencies (we don't want the test ones), adding a node for each + def deps = configurations.compile.allDependencies + configurations.implementation.allDependencies + deps.each { + dependencies.add("compile", it) + } + + } + } +} diff --git a/pom.xml b/pom.xml deleted file mode 100644 index c1cb3c0..0000000 --- a/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - 4.0.0 - - eu.tsystems.mms.tic.testerra - teamcity-connector - 1-SNAPSHOT - - - - 1.8 - 1.8 - - - - - eu.tsystems.mms.tic.testerra - core - 1-SNAPSHOT - - - - - - - maven-surefire-plugin - - true - true - - - - - - - - test - - - - maven-surefire-plugin - - false - true - - - - - - - \ No newline at end of file diff --git a/release-bintray.gradle b/release-bintray.gradle new file mode 100644 index 0000000..e1582b0 --- /dev/null +++ b/release-bintray.gradle @@ -0,0 +1,34 @@ +/** + * Bintray release configuration + * */ +ext { + bintrayRepo = 'Testerra' + bintrayName = "eu.tsystems.mms.tic.testerra:${project.getName()}" + + publishedGroupId = 'eu.tsystems.mms.tic.testerra' + libraryName = 'Testerra' + artifact = project.getName() + packagingType = 'jar' + + libraryDescription = "Testerra ${project.getName()} module" + + siteUrl = 'https://testerra.io' + gitUrl = 'https://github.com/telekom/testerra.git' + issueUrl = 'https://github.com/telekom/testerra/issues' + + libraryVersion = project.getVersion() + + developerId = 'MMS' + developerName = 'Testerra Team T-Systems MMS' + developerEmail = 'dev@testerra.io' + + licenseName = 'The Apache Software License, Version 2.0' + licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + allLicenses = ["Apache-2.0"] +} + +// Set up the Maven publication. +apply from: rootProject.file('jcenter/maven-install.gradle') + +// Publish on Bintray. +apply from: rootProject.file('jcenter/bintray.gradle') From b39f65fc61ee8add7a7a07e39dcfd448abcb9cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Thu, 25 Jun 2020 09:25:47 +0200 Subject: [PATCH 03/25] : Updated README.md --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index e79b318..e660d79 100644 --- a/README.md +++ b/README.md @@ -55,3 +55,30 @@ Maven: ```` + +--- + +## Publication + +### ... to a Maven repo + +```sh +gradle publishToMavenLocal +``` +or pass then properties via. CLI +```sh +gradle publish -DdeployUrl= -DdeployUsername= -DdeployPassword= +``` + +Set a custom version +```shell script +gradle publish -DmoduleVersion= +``` + +### ... to Bintray + +Upload and publish this module to Bintray: + +````sh +gradle bintrayUpload -DmoduleVersion= -DBINTRAY_USER= -DBINTRAY_API_KEY= +```` From 517eabdeb87ec7af0e205f39a21d77f7a13226cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Thu, 25 Jun 2020 18:11:48 +0200 Subject: [PATCH 04/25] : Fix version range --- README.md | 6 ++++-- build.gradle | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e660d79..a86a961 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,13 @@ It will register automatically by using Testera `ModuleHook`. ## Usage +The Testerra Selenoid Connector is published to a Bintray repository https://bintray.com/testerra-io. + Include the following dependency in your project. Gradle: ````groovy -implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1-SNAPSHOT' +implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1.0' ```` Maven: @@ -21,7 +23,7 @@ Maven: eu.tsystems.mms.tic.testerra teamcity-connector - 1-SNAPSHOT + 1.0 ```` diff --git a/build.gradle b/build.gradle index d389736..c1aebd8 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ apply plugin: 'maven' apply plugin: 'maven-publish' ext { - testerraVersion = '1.+' + testerraVersion = '[1.0-RC,2.0)' moduleVersion = '1-SNAPSHOT' if (System.properties.containsKey('moduleVersion')) { moduleVersion = System.getProperty('moduleVersion') From b137f1f1e5e3bf6da627448c2c3589fabb35849e Mon Sep 17 00:00:00 2001 From: Eric Kubenka Date: Fri, 28 Aug 2020 08:30:49 +0200 Subject: [PATCH 05/25] : Updated to current testerra 1.0-rc-1 --- build.gradle | 1 + .../teamcity/listener/TeamCityEventListener.java | 11 +++++++---- .../teamcity/worker/TeamCityStatusReportWorker.java | 8 ++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index c1aebd8..0719392 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,7 @@ ext { dependencies { implementation 'eu.tsystems.mms.tic.testerra:core:' + testerraVersion + implementation 'eu.tsystems.mms.tic.testerra:report:' + testerraVersion } test { diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java index 2be3868..62b375c 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java @@ -15,8 +15,12 @@ * Contributors: * Eric Kubenka */ + package eu.tsystems.mms.tic.testerra.plugins.teamcity.listener; +import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.getCurrentExecutionContext; + + import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityMessagePusher; import eu.tsystems.mms.tic.testframework.events.TesterraEvent; import eu.tsystems.mms.tic.testframework.events.TesterraEventDataType; @@ -25,11 +29,8 @@ import eu.tsystems.mms.tic.testframework.report.TestStatusController; import eu.tsystems.mms.tic.testframework.report.model.context.MethodContext; import eu.tsystems.mms.tic.testframework.report.model.context.SynchronizableContext; -import eu.tsystems.mms.tic.testframework.report.utils.ReportUtils; import eu.tsystems.mms.tic.testframework.utils.StringUtils; -import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.getCurrentExecutionContext; - /** * Listener to react for method context update events *

@@ -59,7 +60,9 @@ public void fireEvent(TesterraEvent testerraEvent) { counterInfoMessage = "Running"; } - final String teamCityMessage = ReportUtils.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": " + counterInfoMessage; + final String teamCityMessage = + getCurrentExecutionContext().runConfig.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": " + + counterInfoMessage; messagePusher.updateProgressMessage(teamCityMessage); } } diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java index bb7726c..4f8f522 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java @@ -17,6 +17,7 @@ package eu.tsystems.mms.tic.testerra.plugins.teamcity.worker; + import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityBuildStatus; import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityMessagePusher; import eu.tsystems.mms.tic.testframework.common.PropertyManager; @@ -24,9 +25,7 @@ import eu.tsystems.mms.tic.testframework.execution.testng.worker.GenerateReportsWorker; import eu.tsystems.mms.tic.testframework.report.FailureCorridor; import eu.tsystems.mms.tic.testframework.report.TestStatusController; -import eu.tsystems.mms.tic.testframework.report.utils.ReportUtils; - -import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.getCurrentExecutionContext; +import eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController; /** * Reports global build status to teamcity @@ -43,7 +42,8 @@ public class TeamCityStatusReportWorker extends GenerateReportsWorker { @Override public void run() { - String statusMessage = ReportUtils.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": "; + String statusMessage = ExecutionContextController.getCurrentExecutionContext().runConfig.getReportName() + " " + + ExecutionContextController.getCurrentExecutionContext().runConfig.RUNCFG + ": "; statusMessage += TestStatusController.getFinalCountersMessage() + " "; // There is a difference in build status depending on failure corridor active From 4dd57aa963a03375fe088a46e827ced150057fa9 Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Mon, 31 Aug 2020 19:24:19 +0200 Subject: [PATCH 06/25] Migrated to new event framework --- .../plugins/teamcity/hooks/TeamCityHook.java | 7 ++-- .../listener/TeamCityEventListener.java | 37 ++++++++----------- .../worker/TeamCityStatusReportWorker.java | 11 +++--- 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java index 141e6ad..7de0489 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java @@ -16,9 +16,9 @@ */ package eu.tsystems.mms.tic.testerra.plugins.teamcity.hooks; +import com.google.common.eventbus.EventBus; import eu.tsystems.mms.tic.testerra.plugins.teamcity.listener.TeamCityEventListener; import eu.tsystems.mms.tic.testerra.plugins.teamcity.worker.TeamCityStatusReportWorker; -import eu.tsystems.mms.tic.testframework.events.TesterraEventService; import eu.tsystems.mms.tic.testframework.hooks.ModuleHook; import eu.tsystems.mms.tic.testframework.report.TesterraListener; @@ -35,8 +35,9 @@ public class TeamCityHook implements ModuleHook { @Override public void init() { - TesterraEventService.addListener(new TeamCityEventListener()); - TesterraListener.registerGenerateReportsWorker(TeamCityStatusReportWorker.class); + EventBus eventBus = TesterraListener.getEventBus(); + eventBus.register(new TeamCityEventListener()); + eventBus.register(new TeamCityStatusReportWorker()); } @Override diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java index 2be3868..0cff99a 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java @@ -17,15 +17,14 @@ */ package eu.tsystems.mms.tic.testerra.plugins.teamcity.listener; +import com.google.common.eventbus.Subscribe; import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityMessagePusher; -import eu.tsystems.mms.tic.testframework.events.TesterraEvent; -import eu.tsystems.mms.tic.testframework.events.TesterraEventDataType; -import eu.tsystems.mms.tic.testframework.events.TesterraEventListener; -import eu.tsystems.mms.tic.testframework.events.TesterraEventType; +import eu.tsystems.mms.tic.testframework.common.PropertyManager; +import eu.tsystems.mms.tic.testframework.constants.TesterraProperties; +import eu.tsystems.mms.tic.testframework.events.ContextUpdateEvent; import eu.tsystems.mms.tic.testframework.report.TestStatusController; import eu.tsystems.mms.tic.testframework.report.model.context.MethodContext; import eu.tsystems.mms.tic.testframework.report.model.context.SynchronizableContext; -import eu.tsystems.mms.tic.testframework.report.utils.ReportUtils; import eu.tsystems.mms.tic.testframework.utils.StringUtils; import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.getCurrentExecutionContext; @@ -38,30 +37,24 @@ * * @author Eric Kubenka */ -public class TeamCityEventListener implements TesterraEventListener { +public class TeamCityEventListener implements ContextUpdateEvent.Listener { private static final TeamCityMessagePusher messagePusher = new TeamCityMessagePusher(); @Override - public void fireEvent(TesterraEvent testerraEvent) { + @Subscribe + public void onContextUpdate(ContextUpdateEvent event) { + final SynchronizableContext contextData = event.getContext(); - // this will check for context update events with method context assigned. - // then fire status message push, because status could probably change on method context + if (contextData instanceof MethodContext) { + String counterInfoMessage = TestStatusController.getCounterInfoMessage(); - if (testerraEvent.getTesterraEventType().equals(TesterraEventType.CONTEXT_UPDATE)) { - - final SynchronizableContext contextData = (SynchronizableContext) testerraEvent.getData().get(TesterraEventDataType.CONTEXT); - - if (contextData instanceof MethodContext) { - String counterInfoMessage = TestStatusController.getCounterInfoMessage(); - - if (StringUtils.isStringEmpty(counterInfoMessage)) { - counterInfoMessage = "Running"; - } - - final String teamCityMessage = ReportUtils.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": " + counterInfoMessage; - messagePusher.updateProgressMessage(teamCityMessage); + if (StringUtils.isStringEmpty(counterInfoMessage)) { + counterInfoMessage = "Running"; } + + final String teamCityMessage = PropertyManager.getProperty(TesterraProperties.REPORTNAME) + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": " + counterInfoMessage; + messagePusher.updateProgressMessage(teamCityMessage); } } } diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java index bb7726c..67c78b0 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java @@ -17,14 +17,14 @@ package eu.tsystems.mms.tic.testerra.plugins.teamcity.worker; +import com.google.common.eventbus.Subscribe; import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityBuildStatus; import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityMessagePusher; import eu.tsystems.mms.tic.testframework.common.PropertyManager; import eu.tsystems.mms.tic.testframework.constants.TesterraProperties; -import eu.tsystems.mms.tic.testframework.execution.testng.worker.GenerateReportsWorker; +import eu.tsystems.mms.tic.testframework.events.ExecutionEndEvent; import eu.tsystems.mms.tic.testframework.report.FailureCorridor; import eu.tsystems.mms.tic.testframework.report.TestStatusController; -import eu.tsystems.mms.tic.testframework.report.utils.ReportUtils; import static eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController.getCurrentExecutionContext; @@ -36,14 +36,15 @@ * * @author Eric Kubenka */ -public class TeamCityStatusReportWorker extends GenerateReportsWorker { +public class TeamCityStatusReportWorker implements ExecutionEndEvent.Listener { private static final TeamCityMessagePusher messagePusher = new TeamCityMessagePusher(); private static final boolean FAILURE_CORRIDOR_ACTIVE = PropertyManager.getBooleanProperty(TesterraProperties.FAILURE_CORRIDOR_ACTIVE, false); @Override - public void run() { - String statusMessage = ReportUtils.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": "; + @Subscribe + public void onExecutionEnd(ExecutionEndEvent event) { + String statusMessage = PropertyManager.getProperty(TesterraProperties.REPORTNAME) + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": "; statusMessage += TestStatusController.getFinalCountersMessage() + " "; // There is a difference in build status depending on failure corridor active From ac85fb735877efa7257a62070ecf465ca9be62db Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Mon, 31 Aug 2020 19:35:19 +0200 Subject: [PATCH 07/25] Merge fixes --- .../plugins/teamcity/listener/TeamCityEventListener.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java index 069921c..606fb4b 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/listener/TeamCityEventListener.java @@ -51,11 +51,10 @@ public void onContextUpdate(ContextUpdateEvent event) { counterInfoMessage = "Running"; } - final String teamCityMessage = - getCurrentExecutionContext().runConfig.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": " + - counterInfoMessage; - messagePusher.updateProgressMessage(teamCityMessage); - } + final String teamCityMessage = + getCurrentExecutionContext().runConfig.getReportName() + " " + getCurrentExecutionContext().runConfig.RUNCFG + ": " + + counterInfoMessage; + messagePusher.updateProgressMessage(teamCityMessage); } } } From 6154fa231a99852430c3201819670940f2704cb8 Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Wed, 2 Sep 2020 12:08:59 +0200 Subject: [PATCH 08/25] Core framework related changes --- .../plugins/teamcity/worker/TeamCityStatusReportWorker.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java index 68c1ed0..3eae027 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java @@ -22,7 +22,7 @@ import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityMessagePusher; import eu.tsystems.mms.tic.testframework.common.PropertyManager; import eu.tsystems.mms.tic.testframework.constants.TesterraProperties; -import eu.tsystems.mms.tic.testframework.events.ExecutionEndEvent; +import eu.tsystems.mms.tic.testframework.events.ExecutionFinishEvent; import eu.tsystems.mms.tic.testframework.report.FailureCorridor; import eu.tsystems.mms.tic.testframework.report.TestStatusController; import eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController; @@ -35,14 +35,14 @@ * * @author Eric Kubenka */ -public class TeamCityStatusReportWorker implements ExecutionEndEvent.Listener { +public class TeamCityStatusReportWorker implements ExecutionFinishEvent.Listener { private static final TeamCityMessagePusher messagePusher = new TeamCityMessagePusher(); private static final boolean FAILURE_CORRIDOR_ACTIVE = PropertyManager.getBooleanProperty(TesterraProperties.FAILURE_CORRIDOR_ACTIVE, false); @Override @Subscribe - public void onExecutionEnd(ExecutionEndEvent event) { + public void onExecutionFinish(ExecutionFinishEvent event) { String statusMessage = ExecutionContextController.getCurrentExecutionContext().runConfig.getReportName() + " " + ExecutionContextController.getCurrentExecutionContext().runConfig.RUNCFG + ": "; statusMessage += TestStatusController.getFinalCountersMessage() + " "; From ee5df3feeaddda356d00e33d13405b8243b58c2c Mon Sep 17 00:00:00 2001 From: Eric Kubenka Date: Mon, 14 Sep 2020 14:38:08 +0200 Subject: [PATCH 09/25] : Exclude 2-SNAPSHOT and higher. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 0719392..2abd075 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ apply plugin: 'maven' apply plugin: 'maven-publish' ext { - testerraVersion = '[1.0-RC,2.0)' + testerraVersion = '[1.0-RC,2-SNAPSHOT)' moduleVersion = '1-SNAPSHOT' if (System.properties.containsKey('moduleVersion')) { moduleVersion = System.getProperty('moduleVersion') From f7e6e2b28968c415e68db9bcf637d1fde1d1976f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Mon, 28 Sep 2020 17:09:18 +0200 Subject: [PATCH 10/25] : Changed testerra version dependency --- build.gradle | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 2abd075..278b63b 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,10 @@ apply plugin: 'maven' apply plugin: 'maven-publish' ext { - testerraVersion = '[1.0-RC,2-SNAPSHOT)' + // Minimum required Testerra version + testerraCompileVersion = '1.0-RC-10' + // Unit tests use the latest Testerra version + testerraTestVersion = '[1.0-RC,2-SNAPSHOT)' moduleVersion = '1-SNAPSHOT' if (System.properties.containsKey('moduleVersion')) { moduleVersion = System.getProperty('moduleVersion') @@ -18,8 +21,11 @@ ext { } dependencies { - implementation 'eu.tsystems.mms.tic.testerra:core:' + testerraVersion - implementation 'eu.tsystems.mms.tic.testerra:report:' + testerraVersion + compileOnly 'eu.tsystems.mms.tic.testerra:driver-ui-desktop:' + testerraCompileVersion + compileOnly 'eu.tsystems.mms.tic.testerra:report:' + testerraCompileVersion + + testImplementation 'eu.tsystems.mms.tic.testerra:driver-ui-desktop:' + testerraTestVersion + testImplementation 'eu.tsystems.mms.tic.testerra:report:' + testerraTestVersion } test { From f4699ca4cc43cc1a44600e4406977183a809844f Mon Sep 17 00:00:00 2001 From: Eric Kubenka Date: Thu, 10 Dec 2020 08:49:21 +0100 Subject: [PATCH 11/25] : Added docs and images according to main repository documentation --- README.md | 84 +++++++++++++----- doc/teamcity_connector_result.png | Bin 0 -> 2665 bytes doc/teamcity_connector_result_exp_failed.png | Bin 0 -> 2643 bytes ...teamcity_connector_result_failure_corr.png | Bin 0 -> 2587 bytes doc/teamcity_connector_result_skipped.png | Bin 0 -> 2960 bytes doc/teamcity_connector_running.png | Bin 0 -> 2216 bytes doc/teamcity_default_result.png | Bin 0 -> 1991 bytes doc/teamcity_default_running.png | Bin 0 -> 1115 bytes 8 files changed, 61 insertions(+), 23 deletions(-) create mode 100644 doc/teamcity_connector_result.png create mode 100644 doc/teamcity_connector_result_exp_failed.png create mode 100644 doc/teamcity_connector_result_failure_corr.png create mode 100644 doc/teamcity_connector_result_skipped.png create mode 100644 doc/teamcity_connector_running.png create mode 100644 doc/teamcity_default_result.png create mode 100644 doc/teamcity_default_running.png diff --git a/README.md b/README.md index a86a961..7b58a97 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,100 @@ -# Testerra TeamCity Connector +# TeamCity Connector -This module for Testerra provides a simple notification service for TeamCity. It uses the build script interaction of TeamCity to update build progress messages -on test method updates and update general build status on report generation. +This module provides a simple notification service for JetBrains TeamCity. It uses the build script interaction of TeamCity to +update build progress messages +on test method updates and update general build status on report generation. -It will register automatically by using Testera `ModuleHook`. +It will register automatically by using `ModuleHook`. ---- ## Usage -The Testerra Selenoid Connector is published to a Bintray repository https://bintray.com/testerra-io. - Include the following dependency in your project. Gradle: + ````groovy -implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1.0' +implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1-SNAPSHOT' ```` Maven: + ````xml + eu.tsystems.mms.tic.testerra teamcity-connector - 1.0 + 1-SNPASHOT ```` ## TeamCity configuration -Please ensure that you have `Failure Conditions > Common Failure Conditions > at least one test failed` deactivated on your TeamCity build configuration, -because Testerra TeamCity Connector will announce the build status on report generation based on test execution statistics. +Please ensure that you have `Failure Conditions > Common Failure Conditions > at least one test failed` deactivated on your TeamCity +build configuration, +because TeamCity Connector will announce the build status on report generation based on test execution statistics. ## Gradle / Maven configuration -When using Testerra TeamCity Connector you have to ensure that Gradle/Maven will ignore test failures. +When using TeamCity Connector you have to ensure that Gradle/Maven will ignore test failures. Gradle: + ````groovy test { - ignoreFailures = true + ignoreFailures = true } ```` Maven: + ````xml - - - - maven-surefire-plugin - - true - true - - - - + + + + + maven-surefire-plugin + + true + true + + + + ```` --- +## Impacts on TeamCity + +*Changes in TeamCity* + +|TeamCity default|With TeamCity connector|Description| +|---|---|---| +|![](doc/teamcity_default_running.png)|![](teamcity_connector_running.png)|TeamCity connector set the current test result at runtime.| +|![](doc/teamcity_default_result.png)|![](teamcity_connector_result.png)|TeamCity connector set the correct test result and build status.| + +The TeamCity connector not only set the correct test results but also add useful information. Based on the screenshots in the table +above the following information are added. + +*Meaning o shown information* + +|Part|Description| +|---|---| +|`TT-Skeleton`|The value of the property `tt.report.name`| +|`regression`|The value of the property `tt.runcfg`. This could be the test set (regression, smoketest, etc.)| +|`3 Passed, 1 Failed`|The result of all test cases of the complete run. At runtime it shows the current result up to that point.| +|`-NOT OK-`|The status of the complete test run. If all tests passed or the `Failure Corridor` was matched, the status would be `-OK-`| + +The following tables shows some more examples how the result could be. + +|Test result|Description| +|---|---| +| ![](doc/teamcity_connector_result_skipped.png) | A test cases was skipped because the corresponding setup method failed. The result of the test run is failed.| +| ![](doc/teamcity_connector_result_failure_corr.png) | The Failure corridor was matched, the status is OK although a test failed.| +| ![](doc/teamcity_connector_result_exp_failed.png) | A test was marked as expected failed, all other tests passed. The restult of the test run is still passed.| + ## Publication ### ... to a Maven repo @@ -67,12 +102,15 @@ Maven: ```sh gradle publishToMavenLocal ``` + or pass then properties via. CLI + ```sh gradle publish -DdeployUrl= -DdeployUsername= -DdeployPassword= ``` Set a custom version + ```shell script gradle publish -DmoduleVersion= ``` diff --git a/doc/teamcity_connector_result.png b/doc/teamcity_connector_result.png new file mode 100644 index 0000000000000000000000000000000000000000..b52b4839a8b397eb6da9a61417b1fa901cc23e60 GIT binary patch literal 2665 zcmV-v3YPVWP)>Ylcz99*xHy@XN*AADIKOc{zV8+(lpIdyL?7-Z)%yHGS;Z;BR$kQ`iEyvf>I z@dBm)jG>~G*=pZXXK=F{ZSqeu7e-*?o+!U}wN)B5R8-=8#g)so}-%j5dXqrX2L``v>J zS0*hx67qaNFqJai3N$RsQOwsPy*~bBKRsY6iWdrm_6v-!-EUK9$2O`&R z($pyh2Xi}6Lc~@5CFmK{C@m@`YjMdWp8hG&uv#FfXQGX?xq@kv2zfpr^q+w z9lgnL|MAZN(Ej~z0pO&u`%~`w@dtkZ!e#D=iLofAND2BK=Ic|gLlnvEVJ^kWiXpD* zPwoufH%_p-7k?p$qQ5jMZ#5y$2drmXzt!rQXk*bc@pCcC^3z3GA7H1MiT@s*c&Q$- zwzKt2w6PVQM)G7zJBvx43s0|wNT6v{003D*urd~)G-+L5ViB!Wj`E2mc7--pL|io> zSQ?#kVa#hB{rDHXmto+fxqI~NuR|38001=)fx65p%S?u-gml15Lm%f8hniU{4C!H@ zX{78V=7t-j_j>~x`0j>@^2RY694JK5Ai%AJ7r*3Id)5ZGy`#dm6Srt`GBLiRYHwpHlo$twuY z+rW4oZ7f|hs;Z!Kxz$+4tb*n0fWA4A7%0jOFN*mPS4}sZ2n{{{e^5T#wFpJexg`Vu zxV#)b2xLXpxRL6-0EwmE?M+`vK!X>7F*yqsNc)^bgqWW7B$>;>(g81lriiq&m~AJP zSf@5IpU)p29vTWqM@M6^n0jgSHIDcGd3vYE|LW_BoE@63Fr9dkC!;(W6)lWz*I`p1 zkH%Jb8WmWSn%v4(i#=Y6)m@t24im})sjIN$PV1VN1z0Yys4$(Q+JSuCEJeC;X}iFp zm=BBk)ztHT(1Wpz1sp}>N7*# zi75)Un)W=o*YC?Pdd*-9sPXI2*?X;C*E7jpf5bN9Mv;0stsW5Tx3x z9O~}c*YC^FE=PG?cW(g{TWEb($LsfH7+pSJD2tkhAhrFvQG!hbFt}&yh9Md)iDZ`7 zdBtQT1(2+DYici*hNglB?a5I!PCyZ3rn65@Q5RtawN%vnHdOsdKCU&iQlZc4>`8Fl z(;c1kj1EaL16m9fr20ShXOpmZKi^f$shMSl53KI6x7CvI>(JVJ4bU^OZ}t5T;Im6X zIM|hd(f1&|+X5n_x-g7)E#?#Qd>|=a>mE5;*wu~B`Y<*&Hak1JzP=s~hXG)HeSLOz zc5G}+U&lCo#Ft;`t%m*`idw;zZl^=dtQFJ?R7}?PZtHEw#1sWv%0)2z#Tv7}n0!@a z$Ot9RntR!lcj*4KzN^D>(j7v2Mu9RV3#9#lJzF;fP?P6~tNOdaFd0da5dctasH)O1 zRM6pM%K`|cR$0kh2zg$8$4Q3fQ3&M1!0Ha0njtMzuwJ_<3b-Z$nuM++aA_!t^&mFm zk}lVi?NhDK?iwIr&wd8f)P84T-bA$V__eC;MibQ45Y;kR zc_bW^sml*300{uPAtw`?&NXU*d>zGn%6V)HmSs7Pd;0V#01yPhvaF$kF+y?O`ewv) ztzUN|o+;O@Z|n_iACkRE=!0_*n{h+Fhnjg9hWM)N?p_UP;bJ`#hr50ifaA{aZ(!GtfK(9 z@eToiw6m(@2829MDw&`u4*}kB(ozNM)gjrNgpz1L{D!Tp!I?PRl>h)0pP0XiP#C_1 zzLh0+TF^#hV%~(%(6*(tvzTowp`{(Pjl~~Weynj$$k06Uh-BBl1ps%YFwYq4P>GTp zwvdt3+r4OwEY$!27%vKuny&$tcjY8=%O4dh1zKO>3`u4H0PwA(-Yq71d7XmYv=bRw z-sh4vvQz_RGDiVtvmrfSY4S?gLgZ33381eAj2F@JF=C5hW6yB zT0F_efygaQ2D1md5?E>NL_$YHYuCP&!bCBt3;~4trIKB!nYBVa6IJFG+?4`ry@J%t z!*JDKsx1OI`qswfa^1UkuixDZ*8j`vxO2q+aP<7g4^k5VE>IrVja&GOawnL>E{s!9 zF~85o@P~OHm*IR-4gheGaDDx)>+5faAk;62dL}AO$r(hk8JCEh@dX>k3DW+a=PEWC zKSTQX8kjSo`{NGF&(AQJ{|B(uz+f=W!2e$ZgTXihTMY~b;|y#yFc^$8u+_j|FwXc7 Xs~}rOnMoKT00000NkvXXu0mjf#Ek(j literal 0 HcmV?d00001 diff --git a/doc/teamcity_connector_result_exp_failed.png b/doc/teamcity_connector_result_exp_failed.png new file mode 100644 index 0000000000000000000000000000000000000000..42ebbd5964055f4f97bcfdd3c81ae886b8f107c0 GIT binary patch literal 2643 zcmV-Z3as^sP){m(IGL?xj^g_#6;}@GPgkXNvmnx{pGK_AeJD6~|ac;22l;Npy zrS$d~9M4lSH&vXyIGuEo&Xyc0b+SGm47Tr{KfmAe=X<~3qq7e^dh`es3Wf5x96o3R zC=|-G4HXdzh0+yNL?{$WS5Oh5P$*qNMTA13bOjX=3Wd@YR75BgN>?zgm%iDlq`v(0 zk9V^F{7(tM%R|n$PK-$>-|RbVQJ6xZbk7GLeDL0T?;W%ik4dvGtZ(1_*O#A}+{>CpX;}Ky}B$I%yCJjS5yvubHs>;r7$0DM>JxDt13Fq1`qy5n7 z()^B~s-Bch*A68vk6Vv66RQhWVJ1+Va1K5#8m&KaIL9ux&6Yndd#DDbg@!YckH7r1 zRYB~`z;DmL|NA$7x&HOtkH7r1=N6FCHn^jrG3%_43u#-j*7JUzak!EBL~p_n@H{c1 z58<30+JojPZ)W%%iCI`$C%x#rOO&|G&TWT;rzW#D4d!>2hROKkP8Ps(-+S)Sqel;R z9ssa21HT#l$q!z5`M(dpezAY(lRH`esUP>&0@i7Rwk2yYcF6GML`%S;s_a}jRE+=& zGl60h01&c>30v-}swY(eHjDtLwK_?L^J$kIN_hdWittG?oL_U zJG8oBIXf^{XF_dFIp-pi!z7)J7WZScmYWD~K++Rlk__jAE*FvRPlUI8k}a4j1Mo`i z(_stWYw3)MdO~E5XlgmTU=OvkHy)2~Z*MnUwApNvlarme`z_NDiQL+{J=8ZCd;RCX zd;NVoGhkMbtIG8+%6D#U-R`{!Jf9IN!LZB*WHz9-9-$cXRNF1Zo6;GQ5J|*wb1s`~ zh*_-e^8AX#7}IGgFlCRLsxK&*PKYFNCdQS=rE-qNl9Z9bSp|{CFsqA3~0D*67 zZEY>-U)iJva3k{(2U4p^&FHS0SyzHf{VNHPL>x%vXH=sNZNpPzsLi)jptx^STZo;S3tNr-jKTd^1wTvfyBszh#^V*y1=Y5-V&q#heK zyI?&#L|!r!3d8S6-7hdE7SWfJ{$<38+{iTv!LaN}AvRqX*3iWfwrUTeHw<0is$xMB zVm({g&G$x>8)ai6AV?0cvZ(-2H>0qNJfJ7+?R>a&>C*D@^3Ki_MN_fiCn!<}wO1f#TIPnfC#} zf(9>Fo=ubLBL3>Z0?G>k+0@)Uz))!GyC%MRumIb1cP9&^v<^7X=nI=nN+<n1CYitEsPgoAtD_Xg* z%j~Rac+FYuopsuJJ}izZm!N>Q8PbgVLV$t$c5R+%954$+M|^tqY$9 zcWE2kQFryqpqs?uW(sQbq;03V$2lhm3^ zy>P+AJ@X!Ji;~({Fit&`xLo@%mGzAgAM}gkvpF#`!dkdsJ$G&n=@J3YLf2XJ_rx&^ z6x-K1AR5vc>ExTQ47mY(em8&R#;-3gT{A1l>7kR-$v1m#04ttn%!xhJQm_`T z>*#^#tR5R5^Ks?bw5}S3nSeZzHYF^3->nuf;{Vo;I)r~AWF#QaauWf0Ms01m(~2aW zt)*|e%D7RO(c1)cNp0BV-MgTwwLG7swOW|nDaHE)fR>vzj%t*+%o?XiZYKlR0Bh-j z_3W_Xd1fJ1(hp7Kr8YbH@ln-r#h!_b)z=aL7%7aFn^h1x*Y3cj#rIZ(b9TcWkaV^> z)cgw}7{05UZO=q>E?l^f&*yL5x^>~gh0bam3=NS;-(lvOa7BMr^}Xwr&RpgJu>R@wbU4qZ@(>&`4(Sdn@?)8jY~(mhEW)#Z zxflc&;eom;vHNhr^3xffUy-ur9y|YZMvxrd@P;QKgL7mgW?|_*0ffmjv2dOZ=;s9X zOkx<8F6=ftzOhV69uLR>LV_K|-7W8kO0d3`005k0<>CX+Tsbr)3IKekV@r8Yyg(!X zObD88xiOFX^WDNc>*3X>KF_A|;OwE!R$X6T-@EU=+fmU2)8MR002ovPDHLkV1mX3 B6-NL7 literal 0 HcmV?d00001 diff --git a/doc/teamcity_connector_result_failure_corr.png b/doc/teamcity_connector_result_failure_corr.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa13b5d3f2ebb77389de4ca900b39fef6beb8a9 GIT binary patch literal 2587 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 literal 0 HcmV?d00001 diff --git a/doc/teamcity_connector_result_skipped.png b/doc/teamcity_connector_result_skipped.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6a8788b342fe46145e64eebf3b007b76d8c9eb GIT binary patch literal 2960 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 Z`7d_ED}bE26PN%1002ovPDHLkV1fma=|KPh literal 0 HcmV?d00001 diff --git a/doc/teamcity_default_running.png b/doc/teamcity_default_running.png new file mode 100644 index 0000000000000000000000000000000000000000..451d4b855679a6e580b634434e0f57ed39f3d2c5 GIT binary patch literal 1115 zcmV-h1f=_kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000BhNklx;kg)-h1woy6~hO zDt;e)anA90edCvNuZwa30J@+$0BD2i0H6)31AsQD4glJqIsj;c>HwgPxVl&-ab?2V zFnDUc^T5j9`W1G~)+fg+w_-e`Q< zzSg<#=G%vOYcXM)XR(ICFMSZNR*=uPxWymF6At>uI-6plV1odv1C$X|$ApJA_BU;C z9lZPAIg^aWGYK}EPR_B@$=RWZ|60%%O3vb~1^DEAUOdZr^-_32t%lM1_+dFvQ7C40 zROnmeD;L`!fa(Bc1l65OJbH(3NrL3v9rkIzSmgbu~=$l1H`oKe&Em;&`cKd1sv{Y;M8#oI-f=U8s}?cSiZl z;(F0Oy*{pI?z76M&zVNrY4gKzYRdy2&!uuIriQOC(B-w zWGeP)?E4g}=&%54An)XnVq4&>ll?1l1w8CLh)? zhu8G&tsiK;IBvc%`9ME*`?UXJ+Y7_T_zd1u4F4~peE4ty;Hg}l@>r8MaEoGTssi&V zqe5SYuc<&(T{@jM7z{?E5e@JX02M-3-E8X1)rq@}gKeuF4a@91SM=^$Zr7l}-ly$v zV;}LR1@Iw>caMr+KOZFSO0h?*i%(I@??JD^mL!U(iagXIMAZTC=a5y0{7A=!qk;3U zueXeJ9rbBX40m=0Opiag@!J)rH~{|;s18s@Tpevt9r*7+bpX)z*H;I?e+Q}qfHtTO h0NS8B0O-o)egbyTAE#eWjO+ja002ovPDHLkV1fZ87I6Ro literal 0 HcmV?d00001 From 8ff279b26f0e2e744afb652c15538bf999d424e8 Mon Sep 17 00:00:00 2001 From: Eric Kubenka Date: Thu, 10 Dec 2020 09:09:31 +0100 Subject: [PATCH 12/25] : Added horizontal line for publication --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7b58a97..989b11b 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,8 @@ The following tables shows some more examples how the result could be. | ![](doc/teamcity_connector_result_failure_corr.png) | The Failure corridor was matched, the status is OK although a test failed.| | ![](doc/teamcity_connector_result_exp_failed.png) | A test was marked as expected failed, all other tests passed. The restult of the test run is still passed.| +--- + ## Publication ### ... to a Maven repo From cd21fc7bde9c2d2c128f5594f83125c9433b4e44 Mon Sep 17 00:00:00 2001 From: Eric Kubenka Date: Thu, 10 Dec 2020 10:49:04 +0100 Subject: [PATCH 13/25] : set minimum testerra version --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 989b11b..ccb3565 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,11 @@ It will register automatically by using `ModuleHook`. ## Usage +### Dependencies + +* Latest version: `1-SNAPSHOT` +* Required Testerra version: `1-0-RC-10` + Include the following dependency in your project. Gradle: From f55c79f6d0eb3ec53f79bb954caa334ba4881577 Mon Sep 17 00:00:00 2001 From: Eric Kubenka Date: Mon, 14 Dec 2020 06:23:29 +0100 Subject: [PATCH 14/25] : Unified docs --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ccb3565..5b0a9f0 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,15 @@ It will register automatically by using `ModuleHook`. ---- -## Usage +## Releases + +* Latest Release: `1.0-RC-3` -### Dependencies +## Requirements -* Latest version: `1-SNAPSHOT` -* Required Testerra version: `1-0-RC-10` +* Testerra in Version `1.0-RC-10` + +## Usage Include the following dependency in your project. From 39e2e9ace40761e2b9db7a960478f7fa74be46c1 Mon Sep 17 00:00:00 2001 From: Eric Kubenka Date: Mon, 14 Dec 2020 06:28:19 +0100 Subject: [PATCH 15/25] : Fixed code-snippet-versions --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5b0a9f0..954625a 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Include the following dependency in your project. Gradle: ````groovy -implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1-SNAPSHOT' +implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1.0-RC-3' ```` Maven: @@ -33,7 +33,7 @@ Maven: eu.tsystems.mms.tic.testerra teamcity-connector - 1-SNPASHOT + 1.0-RC-3 ```` From 8c2bf0efdb955ec1a46ab7782414f5b3f0aa1059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Mon, 25 Jan 2021 16:22:06 +0100 Subject: [PATCH 16/25] Removed unnecessary dependencies --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index 278b63b..c1a86ab 100644 --- a/build.gradle +++ b/build.gradle @@ -22,10 +22,8 @@ ext { dependencies { compileOnly 'eu.tsystems.mms.tic.testerra:driver-ui-desktop:' + testerraCompileVersion - compileOnly 'eu.tsystems.mms.tic.testerra:report:' + testerraCompileVersion testImplementation 'eu.tsystems.mms.tic.testerra:driver-ui-desktop:' + testerraTestVersion - testImplementation 'eu.tsystems.mms.tic.testerra:report:' + testerraTestVersion } test { From 52030bd854f62abe0903611be30416df9d735b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Tue, 26 Jan 2021 08:44:33 +0100 Subject: [PATCH 17/25] Updated release version --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 954625a..12fd77b 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ It will register automatically by using `ModuleHook`. ## Releases -* Latest Release: `1.0-RC-3` +* Latest Release: `1.0-RC-4` ## Requirements @@ -23,7 +23,7 @@ Include the following dependency in your project. Gradle: ````groovy -implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1.0-RC-3' +implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1.0-RC-4' ```` Maven: @@ -33,7 +33,7 @@ Maven: eu.tsystems.mms.tic.testerra teamcity-connector - 1.0-RC-3 + 1.0-RC-4 ```` From 3e28aced7b3d3b689404438f41b645922e53bb4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Thu, 4 Mar 2021 12:10:50 +0100 Subject: [PATCH 18/25] Removed bintray publishing --- README.md | 23 ++++----- build.gradle | 10 ++-- jcenter/bintray.gradle | 61 ----------------------- jcenter/maven-install.gradle | 44 ----------------- publish.gradle | 95 ++++++++++++++++++++++++++++++++++++ release-bintray.gradle | 34 ------------- 6 files changed, 108 insertions(+), 159 deletions(-) delete mode 100644 jcenter/bintray.gradle delete mode 100644 jcenter/maven-install.gradle create mode 100644 publish.gradle delete mode 100644 release-bintray.gradle diff --git a/README.md b/README.md index 12fd77b..e4d1784 100644 --- a/README.md +++ b/README.md @@ -109,26 +109,23 @@ The following tables shows some more examples how the result could be. ### ... to a Maven repo -```sh +_Publishing to local repo_ +```shell gradle publishToMavenLocal ``` -or pass then properties via. CLI - -```sh +_Publishing to remote repo_ +```shell gradle publish -DdeployUrl= -DdeployUsername= -DdeployPassword= ``` -Set a custom version - -```shell script +_Set a custom version_ +```shell gradle publish -DmoduleVersion= ``` +### ... to GitHub Packages -### ... to Bintray - -Upload and publish this module to Bintray: +Some hints for using GitHub Packages as Maven repository -````sh -gradle bintrayUpload -DmoduleVersion= -DBINTRAY_USER= -DBINTRAY_API_KEY= -```` +* Deploy URL is https://maven.pkg.github.com/OWNER/REPOSITRY +* As password generate an access token and grant permissions to ``write:packages`` (Settings -> Developer settings -> Personal access token) diff --git a/build.gradle b/build.gradle index c1a86ab..637690f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,3 @@ -plugins { - id "com.jfrog.bintray" version "1.8.5" -} - apply plugin: 'java' apply plugin: 'maven' apply plugin: 'maven-publish' @@ -20,6 +16,9 @@ ext { version moduleVersion } +// Do not move this integration because `group` and `version` is needed for publishing +apply from: rootProject.file('publish.gradle') + dependencies { compileOnly 'eu.tsystems.mms.tic.testerra:driver-ui-desktop:' + testerraCompileVersion @@ -29,6 +28,3 @@ dependencies { test { useTestNG() } - - -apply from: rootProject.file('release-bintray.gradle') diff --git a/jcenter/bintray.gradle b/jcenter/bintray.gradle deleted file mode 100644 index 26cf4da..0000000 --- a/jcenter/bintray.gradle +++ /dev/null @@ -1,61 +0,0 @@ -apply plugin: 'com.jfrog.bintray' - -version = libraryVersion - -allprojects { - - publishing { - - task sourcesJar(type: Jar, dependsOn: classes) { - archiveClassifier.set('sources') - from sourceSets.main.allSource - } - - artifacts { - archives sourcesJar - } - - publications { - mavenJava(MavenPublication) { - from components.java - artifact sourcesJar - } - } - - repositories { - maven { - url System.getProperty("deployUrl", "none") - credentials { - username System.getProperty("deployUsername", "none") - password System.getProperty("deployPassword", "none") - } - } - } - } -} - -bintray { - user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getProperty('BINTRAY_USER') - key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getProperty('BINTRAY_API_KEY') - - configurations = ['archives'] - publish = true - pkg { - repo = bintrayRepo - name = bintrayName - desc = libraryDescription - - websiteUrl = siteUrl - vcsUrl = gitUrl - issueTrackerUrl = issueUrl - licenses = allLicenses - labels = ['testerra', 'java', 'selenium', 'testng', 'test', 'testautomation', 'framework'] - publicDownloadNumbers = true - version { - desc = libraryDescription - } - } -} - -bintrayUpload.dependsOn assemble -bintrayUpload.dependsOn sourcesJar diff --git a/jcenter/maven-install.gradle b/jcenter/maven-install.gradle deleted file mode 100644 index 9fadc15..0000000 --- a/jcenter/maven-install.gradle +++ /dev/null @@ -1,44 +0,0 @@ -group = publishedGroupId // Maven Group ID for the artifact - -install { - repositories.mavenInstaller { - // This generates POM.xml with proper parameters - pom.project { - packaging packagingType - groupId publishedGroupId - artifactId artifact - - // Add your description here - name libraryName - description libraryDescription - url siteUrl - - // Set your license - licenses { - license { - name licenseName - url licenseUrl - } - } - developers { - developer { - id developerId - name developerName - email developerEmail - } - } - scm { - connection gitUrl - developerConnection gitUrl - url siteUrl - } - - // Iterate over the compile dependencies (we don't want the test ones), adding a node for each - def deps = configurations.compile.allDependencies + configurations.implementation.allDependencies - deps.each { - dependencies.add("compile", it) - } - - } - } -} diff --git a/publish.gradle b/publish.gradle new file mode 100644 index 0000000..4a3447d --- /dev/null +++ b/publish.gradle @@ -0,0 +1,95 @@ +/** + * Maven publishing configuration + * */ + +// Maven basis attributes +ext { + libraryName = 'Testerra' + artifact = project.getName().toLowerCase() + packagingType = 'jar' + + libraryDescription = "Testerra ${project.getName()} module" + + siteUrl = 'https://testerra.io' + gitUrl = 'https://github.com/telekom/testerra-selenoid-connector.git' + issueUrl = 'https://github.com/telekom/testerra-selenoid-connector/issues' + + developerId = 'MMS' + developerName = 'Testerra Team T-Systems MMS' + developerEmail = 'testerra@t-systems-mms.com' + + licenseName = 'The Apache Software License, Version 2.0' + licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + allLicenses = ["Apache-2.0"] +} + +// Set up the Maven publication. +install { + repositories.mavenInstaller { + // This generates POM.xml with proper parameters + pom.project { + packaging packagingType + groupId group + artifactId artifact + + // Add your description here + name libraryName + description libraryDescription + url siteUrl + + // Set your license + licenses { + license { + name licenseName + url licenseUrl + } + } + developers { + developer { + id developerId + name developerName + email developerEmail + } + } + scm { + connection gitUrl + developerConnection gitUrl + url siteUrl + } + + } + } +} + +// Publish to a Maven repository +allprojects { + + publishing { + + task sourcesJar(type: Jar, dependsOn: classes) { + archiveClassifier.set('sources') + from sourceSets.main.allSource + } + + artifacts { + archives sourcesJar + } + + publications { + mavenJava(MavenPublication) { + from components.java + artifact sourcesJar + } + } + + repositories { + maven { + url System.getProperty("deployUrl", "none") + credentials { + username System.getProperty("deployUsername", "none") + password System.getProperty("deployPassword", "none") + } + } + } + } +} diff --git a/release-bintray.gradle b/release-bintray.gradle deleted file mode 100644 index e1582b0..0000000 --- a/release-bintray.gradle +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Bintray release configuration - * */ -ext { - bintrayRepo = 'Testerra' - bintrayName = "eu.tsystems.mms.tic.testerra:${project.getName()}" - - publishedGroupId = 'eu.tsystems.mms.tic.testerra' - libraryName = 'Testerra' - artifact = project.getName() - packagingType = 'jar' - - libraryDescription = "Testerra ${project.getName()} module" - - siteUrl = 'https://testerra.io' - gitUrl = 'https://github.com/telekom/testerra.git' - issueUrl = 'https://github.com/telekom/testerra/issues' - - libraryVersion = project.getVersion() - - developerId = 'MMS' - developerName = 'Testerra Team T-Systems MMS' - developerEmail = 'dev@testerra.io' - - licenseName = 'The Apache Software License, Version 2.0' - licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - allLicenses = ["Apache-2.0"] -} - -// Set up the Maven publication. -apply from: rootProject.file('jcenter/maven-install.gradle') - -// Publish on Bintray. -apply from: rootProject.file('jcenter/bintray.gradle') From 8a1abafe7b79b010c7553ba8a30754057e2e41f4 Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Fri, 5 Mar 2021 09:52:49 +0100 Subject: [PATCH 19/25] Upgraded to APIv2 --- .../tic/testerra/plugins/teamcity/hooks/TeamCityHook.java | 3 ++- .../plugins/teamcity/worker/TeamCityStatusReportWorker.java | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java index 7de0489..809005d 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/hooks/TeamCityHook.java @@ -17,6 +17,7 @@ package eu.tsystems.mms.tic.testerra.plugins.teamcity.hooks; import com.google.common.eventbus.EventBus; +import com.google.inject.AbstractModule; import eu.tsystems.mms.tic.testerra.plugins.teamcity.listener.TeamCityEventListener; import eu.tsystems.mms.tic.testerra.plugins.teamcity.worker.TeamCityStatusReportWorker; import eu.tsystems.mms.tic.testframework.hooks.ModuleHook; @@ -30,7 +31,7 @@ * * @author Eric Kubenka */ -public class TeamCityHook implements ModuleHook { +public class TeamCityHook extends AbstractModule implements ModuleHook { @Override public void init() { diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java index 3eae027..3df46ed 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java @@ -20,8 +20,7 @@ import com.google.common.eventbus.Subscribe; import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityBuildStatus; import eu.tsystems.mms.tic.testerra.plugins.teamcity.TeamCityMessagePusher; -import eu.tsystems.mms.tic.testframework.common.PropertyManager; -import eu.tsystems.mms.tic.testframework.constants.TesterraProperties; +import eu.tsystems.mms.tic.testframework.common.Testerra; import eu.tsystems.mms.tic.testframework.events.ExecutionFinishEvent; import eu.tsystems.mms.tic.testframework.report.FailureCorridor; import eu.tsystems.mms.tic.testframework.report.TestStatusController; @@ -38,7 +37,7 @@ public class TeamCityStatusReportWorker implements ExecutionFinishEvent.Listener { private static final TeamCityMessagePusher messagePusher = new TeamCityMessagePusher(); - private static final boolean FAILURE_CORRIDOR_ACTIVE = PropertyManager.getBooleanProperty(TesterraProperties.FAILURE_CORRIDOR_ACTIVE, false); + private static final boolean FAILURE_CORRIDOR_ACTIVE = Testerra.Properties.FAILURE_CORRIDOR_ACTIVE.asBool(); @Override @Subscribe From 997118af12c522339fde2f75f2801e78ebf0e837 Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Fri, 5 Mar 2021 10:39:44 +0100 Subject: [PATCH 20/25] Updated version --- README.md | 8 ++++---- build.gradle | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 12fd77b..1994c10 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,11 @@ It will register automatically by using `ModuleHook`. ## Releases -* Latest Release: `1.0-RC-4` +* Latest Release: `2.0-RC-1` ## Requirements -* Testerra in Version `1.0-RC-10` +* Testerra in Version `2.0-RC-1` ## Usage @@ -23,7 +23,7 @@ Include the following dependency in your project. Gradle: ````groovy -implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:1.0-RC-4' +implementation 'eu.tsystems.mms.tic.testerra:teamcity-connector:2.0-RC-1' ```` Maven: @@ -33,7 +33,7 @@ Maven: eu.tsystems.mms.tic.testerra teamcity-connector - 1.0-RC-4 + 2.0-RC-1 ```` diff --git a/build.gradle b/build.gradle index c1a86ab..bcf1ba8 100644 --- a/build.gradle +++ b/build.gradle @@ -8,10 +8,10 @@ apply plugin: 'maven-publish' ext { // Minimum required Testerra version - testerraCompileVersion = '1.0-RC-10' + testerraCompileVersion = '2.0-RC-1' // Unit tests use the latest Testerra version - testerraTestVersion = '[1.0-RC,2-SNAPSHOT)' - moduleVersion = '1-SNAPSHOT' + testerraTestVersion = '[2.0-RC,3-SNAPSHOT)' + moduleVersion = '2-SNAPSHOT' if (System.properties.containsKey('moduleVersion')) { moduleVersion = System.getProperty('moduleVersion') } From 8363c347178c8e77974e44bda498846d8115a4b7 Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Thu, 29 Apr 2021 13:19:36 +0200 Subject: [PATCH 21/25] Updated versions --- README.md | 2 +- build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 186b7fd..71d71cf 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ It will register automatically by using the Testerra ModuleHook. ### Requirements -![Maven Central](https://img.shields.io/maven-central/v/io.testerra/core/1.0-RC-32?label=Testerra) +![Maven Central](https://img.shields.io/maven-central/v/io.testerra/core/2.0-RC-4?label=Testerra) ### Usage diff --git a/build.gradle b/build.gradle index 8da0869..5d237b6 100644 --- a/build.gradle +++ b/build.gradle @@ -10,9 +10,9 @@ apply plugin: 'io.codearte.nexus-staging' ext { // Minimum required Testerra version - testerraCompileVersion = '2.0-RC-1' + testerraCompileVersion = '2.0-RC-4' // Unit tests use the latest Testerra version - testerraTestVersion = '[2.0,3-SNAPSHOT)' + testerraTestVersion = '[2.0-RC,3-SNAPSHOT)' moduleVersion = '2-SNAPSHOT' if (System.properties.containsKey('moduleVersion')) { moduleVersion = System.getProperty('moduleVersion') From 0b5aa58a172dfe1e75b4ea74f031c7874d569077 Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Tue, 9 Nov 2021 09:40:21 +0100 Subject: [PATCH 22/25] Added Testerra 2 version hint --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 907281a..4fe7781 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ It will register automatically by using the Testerra ModuleHook. | -------------------- | --------------| | `1.0` | `1.0.0..1.8` | | `1.1` | `1.9` | +| `2.0-RC-2` | `2.0-RC-19` | ### Usage From 625b20bf116e8c716124d4f27ed97fa0915e19ec Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Tue, 9 Nov 2021 09:43:05 +0100 Subject: [PATCH 23/25] Updated API --- .../plugins/teamcity/worker/TeamCityStatusReportWorker.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java index 43eec41..80685a4 100644 --- a/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java +++ b/src/main/java/eu/tsystems/mms/tic/testerra/plugins/teamcity/worker/TeamCityStatusReportWorker.java @@ -23,7 +23,7 @@ import eu.tsystems.mms.tic.testframework.common.Testerra; import eu.tsystems.mms.tic.testframework.events.ExecutionFinishEvent; import eu.tsystems.mms.tic.testframework.report.FailureCorridor; -import eu.tsystems.mms.tic.testframework.report.TestStatusController; +import eu.tsystems.mms.tic.testframework.report.ITestStatusController; import eu.tsystems.mms.tic.testframework.report.TesterraListener; import eu.tsystems.mms.tic.testframework.report.utils.ExecutionContextController; @@ -43,7 +43,7 @@ public class TeamCityStatusReportWorker implements ExecutionFinishEvent.Listener @Override @Subscribe public void onExecutionFinish(ExecutionFinishEvent event) { - TestStatusController testStatusController = TesterraListener.getTestStatusController(); + ITestStatusController testStatusController = TesterraListener.getTestStatusController(); String statusMessage = ExecutionContextController.getCurrentExecutionContext().runConfig.getReportName() + " " + ExecutionContextController.getCurrentExecutionContext().runConfig.RUNCFG + ": "; From 3e4c8bd1912b22fb24b3377f61f09c3a356e0c8a Mon Sep 17 00:00:00 2001 From: Mike Reiche Date: Wed, 10 Nov 2021 13:08:19 +0100 Subject: [PATCH 24/25] Updated version --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 59787e2..f4e7298 100644 --- a/build.gradle +++ b/build.gradle @@ -9,9 +9,9 @@ apply plugin: 'io.codearte.nexus-staging' ext { // Minimum required Testerra version - testerraCompileVersion = '2.0-RC-4' + testerraCompileVersion = '2-SNAPSHOT' // Unit tests use the latest Testerra version - testerraTestVersion = '[2.9,3-SNAPSHOT)' + testerraTestVersion = '[2,3-SNAPSHOT)' moduleVersion = '2-SNAPSHOT' if (System.properties.containsKey('moduleVersion')) { moduleVersion = System.getProperty('moduleVersion') From 2a7b14bf0aeb0797eb7a697f646068516e8ef074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Thu, 14 Apr 2022 16:58:11 +0200 Subject: [PATCH 25/25] Updated README.md --- README.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 4fe7781..011c4d9 100644 --- a/README.md +++ b/README.md @@ -25,19 +25,16 @@ on test method updates and update general build status on report generation. It will register automatically by using the Testerra ModuleHook. ---- -## Requirements - -* Testerra in Version `2.0-RC-1` ## Setup ### Requirements -| TeamCity connector | Testerra | -| -------------------- | --------------| -| `1.0` | `1.0.0..1.8` | -| `1.1` | `1.9` | -| `2.0-RC-2` | `2.0-RC-19` | +| TeamCity connector | Testerra | +|--------------------|----------------| +| `1.0` | `1.0.0..1.8` | +| `1.1` | `1.9` | +| `2.0-RC-2` | `>= 2.0-RC-19` | ### Usage @@ -46,7 +43,7 @@ Include the following dependency in your project. Gradle: ````groovy -implementation 'io.testerra:teamcity-connector:2.0-RC-1' +implementation 'io.testerra:teamcity-connector:2.0-RC-2' ```` Maven: @@ -56,7 +53,7 @@ Maven: io.testerra teamcity-connector - 2.0-RC-1 + 2.0-RC-2 ````