{"id":29334597,"url":"https://github.com/reportportal/agent-java-junit5","last_synced_at":"2026-03-17T10:13:05.572Z","repository":{"id":32641663,"uuid":"117077746","full_name":"reportportal/agent-java-junit5","owner":"reportportal","description":"JUnit5 integration for ReportPortal","archived":false,"fork":false,"pushed_at":"2026-03-16T16:38:57.000Z","size":2103,"stargazers_count":26,"open_issues_count":0,"forks_count":22,"subscribers_count":17,"default_branch":"develop","last_synced_at":"2026-03-17T03:21:10.898Z","etag":null,"topics":["java","junit5","reportportal"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reportportal.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-01-11T09:20:35.000Z","updated_at":"2026-03-16T16:39:01.000Z","dependencies_parsed_at":"2023-12-13T11:40:24.489Z","dependency_job_id":"1f28d9e7-3e3d-465a-a6e6-7af3e7cc201c","html_url":"https://github.com/reportportal/agent-java-junit5","commit_stats":null,"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/reportportal/agent-java-junit5","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reportportal%2Fagent-java-junit5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reportportal%2Fagent-java-junit5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reportportal%2Fagent-java-junit5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reportportal%2Fagent-java-junit5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reportportal","download_url":"https://codeload.github.com/reportportal/agent-java-junit5/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reportportal%2Fagent-java-junit5/sbom","scorecard":{"id":771469,"data":{"date":"2025-08-11","repo":{"name":"github.com/reportportal/agent-java-junit5","commit":"72bb2f10b35124a6a6c6e25842196ef2566a3682"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Maintained","score":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/15 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/promote.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/ci.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:111: update your workflow using https://app.stepsecurity.io/secureworkflow/reportportal/agent-java-junit5/release.yml/develop?enable=pin","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:39"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T02:22:23.295Z","repository_id":32641663,"created_at":"2025-08-23T02:22:23.295Z","updated_at":"2025-08-23T02:22:23.295Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30622224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T08:10:05.930Z","status":"ssl_error","status_checked_at":"2026-03-17T08:10:04.972Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","junit5","reportportal"],"created_at":"2025-07-08T04:19:38.410Z","updated_at":"2026-03-17T10:13:05.567Z","avatar_url":"https://github.com/reportportal.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReportPortal JUnit 5 Extension\nA JUnit 5 reporter that uploads the results to a ReportPortal server.\n\n\u003e **DISCLAIMER**: We use Google Analytics for sending anonymous usage information such as agent's and client's names, and their versions\n\u003e after a successful launch start. This information might help us to improve both ReportPortal backend and client sides. It is used by the\n\u003e ReportPortal team only and is not supposed for sharing with 3rd parties.\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.epam.reportportal/agent-java-junit5.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/com.epam.reportportal/agent-java-junit5)\n[![CI Build](https://github.com/reportportal/agent-java-junit5/actions/workflows/ci.yml/badge.svg)](https://github.com/reportportal/agent-java-junit5/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/reportportal/agent-java-junit5/branch/develop/graph/badge.svg?token=tq832Jsqef)](https://codecov.io/gh/reportportal/agent-java-junit5)\n[![Join Slack chat!](https://img.shields.io/badge/slack-join-brightgreen.svg)](https://slack.epmrpp.reportportal.io/)\n[![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal)\n[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat)\n\nThe latest version: 5.5.7. Please use `Maven Central` link above to get the client.\n\n---\n\n# ReportPortal [JUnit5](https://junit.org/junit5/) Integration\n\nThe repository contains [JUnit5 Extension](https://junit.org/junit5/docs/current/user-guide/#extensions) for [ReportPortal](http://reportportal.io/) integration.\n\n## Getting Started\n\nTo start using ReportPortal with JUnit 5 create a service location file: \n1. Create folders **_/META-INF/services_** in **_resources_**\n2. Put there a file named **_org.junit.jupiter.api.extension.Extension_**ы\n3. Put a default implementation reference as a single row into the file: **_com.epam.reportportal.junit5.ReportPortalExtension_** \n\nExample:\n__/META-INF/services/org.junit.jupiter.api.extension.Extension__\n```none\ncom.epam.reportportal.junit5.ReportPortalExtension\n```\n\nIf you desire to configure test *name*, *description* and *tags*:\n\nExtend *ReportPortalExtension*, override *buildStartStepRq()* or other methods (see javadoc comments) and replace \n*com.epam.reportportal.junit5.ReportPortalExtension* with fully qualified custom Extension class name in this file.\n\n### Maven\n\n```xml\n\u003cdependency\u003e\n   \u003cgroupId\u003ecom.epam.reportportal\u003c/groupId\u003e\n   \u003cartifactId\u003eagent-java-junit5\u003c/artifactId\u003e\n   \u003cversion\u003e5.5.7\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n#### Automatic Extension Registration (optional)\n\n```xml\n\u003cbuild\u003e\n    \u003cplugins\u003e\n        \u003cplugin\u003e\n            \u003cartifactId\u003emaven-surefire-plugin\u003c/artifactId\u003e\n            \u003cversion\u003e3.0.0-M5\u003c/version\u003e\n            \u003cconfiguration\u003e\n                \u003cproperties\u003e\n                    \u003cconfigurationParameters\u003e\n                        junit.jupiter.extensions.autodetection.enabled = true\n                    \u003c/configurationParameters\u003e\n                \u003c/properties\u003e\n            \u003c/configuration\u003e\n        \u003c/plugin\u003e\n    \u003c/plugins\u003e\n\u003c/build\u003e\n```\n\n### Gradle\n\n```groovy\nrepositories {\n    mavenLocal()\n    mavenCentral()\n}\n\ntestImplementation 'com.epam.reportportal:agent-java-junit5:5.5.7'\n```\n\n#### Automatic Extension Registration (optional)\n\n```groovy\ntest {\n    useJUnitPlatform()\n    systemProperty 'junit.jupiter.extensions.autodetection.enabled', true\n}\n```\n\n## Disabled tests reporting\nBy default reporting of @Disabled tests is switched off. To switch it on - add next parameter to an execution goal:\n- Maven: -DreportDisabledTests=true\n- Gradle: -PreportDisabledTests=true \n\n# Step-by-step integration manual for JUnit5\n\nThis manual will walk you through the steps for integration of ReportPortal with JUnit5 based project\n\nFirst, make sure you have installed ReportPortal, the installation steps could be found [here](http://reportportal.io/docs/Installation-steps)\n\nWe’ll assume that ReportPortal is installed and running on \u003chttp://localhost:8080\u003e\n\n## Step 1 - Create new project (Maven)\n\n\u003e If you want to integrate ReportPortal with existing project, go to step 2\n\n#### 1.1 Start new maven project\n\n![Start new maven project](integration_manual_files/step_new_maven_project.png)\n\n#### 1.2 Enter GroupId and ArtifactId\n\n![Entering groupId and artifactId](integration_manual_files/step_group_and_artifact_id.png)\n\n#### 1.3 Enter project name\n\n![Entering project name](integration_manual_files/step_project_name.png)\n\n## Step 2 - Configure pom.xml\n\n#### 2.1 Add following dependencies:\n\n*ReportPortal agent implementation for JUnit 5*\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.epam.reportportal\u003c/groupId\u003e\n    \u003cartifactId\u003eagent-java-junit5\u003c/artifactId\u003e\n    \u003cversion\u003e5.5.7\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\u003e Latest version of the agent, could be found [here](https://search.maven.org/search?q=g:%22com.epam.reportportal%22%20AND%20a:%22agent-java-junit5%22)\n\n\nThe ReportPortal agent for JUnit 5 includes the JUnit 5 library dependency, and so we won't need other explicit JUnit 5 dependencies  \nHowever, if you are adding ReportPortal agent to existing project, with JUnit 5 dependency already declared, pay attention to dependency transitivity and the conflicts that might arise\n\n\u003e More about JUnit 5 dependencies structure could be found [here](https://junit.org/junit5/docs/current/user-guide/#dependency-metadata)\n\n#### 2.2 Add ReportPortal dedicated logger wrapper\nReportPortal provides its own logger implementations for major logging frameworks like *log4j* and *logback*\n\nIf you prefer using **Logback** logging library, add following dependencies:\n\n*ReportPortal logback logger dependency*\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.epam.reportportal\u003c/groupId\u003e\n    \u003cartifactId\u003elogger-java-logback\u003c/artifactId\u003e\n    \u003cversion\u003e5.2.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\u003e Up to date version could be found [here](https://search.maven.org/search?q=g:%22com.epam.reportportal%22%20AND%20a:%22logger-java-logback%22)\n\n*The logback itself*\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ech.qos.logback\u003c/groupId\u003e\n    \u003cartifactId\u003elogback-classic\u003c/artifactId\u003e\n    \u003cversion\u003e1.2.10\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nIf you prefer using **Log4j** logging library, add following dependencies:\n\n*ReportPortal log4j logger dependency*\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.epam.reportportal\u003c/groupId\u003e\n    \u003cartifactId\u003elogger-java-log4j\u003c/artifactId\u003e\n    \u003cversion\u003e5.2.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\u003e Up to date version could be found [here](https://search.maven.org/search?q=g:%22com.epam.reportportal%22%20AND%20a:%22logger-java-log4j%22)\n\n*The log4j itself*\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.apache.logging.log4j\u003c/groupId\u003e\n    \u003cartifactId\u003elog4j-api\u003c/artifactId\u003e\n    \u003cversion\u003e2.17.1\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n     \u003cgroupId\u003eorg.apache.logging.log4j\u003c/groupId\u003e\n     \u003cartifactId\u003elog4j-core\u003c/artifactId\u003e\n     \u003cversion\u003e2.17.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Step 3 - Add the test with logging\n\n#### 3.1 Add simple test method\n\nCreate a test class `MyTests` in the test directory and add JUnit 5 test method there\n\n```java\npackage com.mycompany.tests;\n\nimport org.apache.logging.log4j.LogManager;\nimport org.apache.logging.log4j.Logger;\nimport org.junit.jupiter.api.*;\n\npublic class MyTests {\n\n    private static final Logger LOGGER = LogManager.getLogger(MyTests.class);\n\n    @Test\n    void testMySimpleTest() {\n        LOGGER.info(\"Hello from my simple test\");\n    }\n}\n```\n\n#### 3.2 Add `log4j2.xml` file to `resources` folder\n*Example:*\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cConfiguration status=\"WARN\"\u003e\n    \u003cAppenders\u003e\n        \u003cConsole name=\"ConsoleAppender\" target=\"SYSTEM_OUT\"\u003e\n            \u003cPatternLayout\n                    pattern=\"%d [%t] %-5level %logger{36} - %msg%n%throwable\"/\u003e\n        \u003c/Console\u003e\n        \u003cReportPortalLog4j2Appender name=\"ReportPortalAppender\"\u003e\n            \u003cPatternLayout\n                    pattern=\"%d [%t] %-5level %logger{36} - %msg%n%throwable\"/\u003e\n        \u003c/ReportPortalLog4j2Appender\u003e\n    \u003c/Appenders\u003e\n    \u003cLoggers\u003e\n        \u003cRoot level=\"DEBUG\"\u003e\n            \u003cAppenderRef ref=\"ConsoleAppender\"/\u003e\n            \u003cAppenderRef ref=\"ReportPortalAppender\"/\u003e\n        \u003c/Root\u003e\n    \u003c/Loggers\u003e\n\u003c/Configuration\u003e\n```\nIt's needed to add `ReportPortalAppender` into this (as shown in the example)\n\nBy this moment, your project tree should look somewhat like the this:\n\n![Project structure](integration_manual_files/step_project_structure.png)\n\n## Step 4 - Configuring ReportPortal\n\n#### 4.1 Open ReportPortal UI\n\nGo to *http:$IP_ADDRESS_OF_REPORT_PORTAL:8080* (by default it is *http://localhost:8080*)\n\nLogin as **Admin** user and create the project (more details [here](https://reportportal.io/docs/category/installation-steps) and [here](https://reportportal.io/docs/reportportal-configuration/CreationOfProjectAndAddingUsers/#create-a-project))\n\n![RP. Add Project](integration_manual_files/step_add_project.png)\n\n![RP. Add Project 2](integration_manual_files/step_add_project2.png)\n\n#### 4.2 Add users to your project:\n\nGo to *Administrative* -\u003e *My Test Project* -\u003e *Members* -\u003e *Add user*\n\u003e Example link *http://localhost:8080/ui/#administrate/project-details/my_test_project/members*\n\n![RP. Add user](integration_manual_files/step_add_user.png)\n\n## Step 5 - Link ReportPortal with your tests\n\n#### 5.1 - Add `reportportal.properties`\n\nAfter you have created new user in your project, you can get `reportportal.properties` file example from the user *Profile* page\n\nTo do that, login as created user and go to *User icon* in header -\u003e *Profile*\n\nThere, in *Configuration Examples* section, you can find the example of `reportportal.properties` file for that user\n\n![RP. User profile](integration_manual_files/step_user_profile.png)\n\nReturning back to the code. In your project, create file named `reportportal.properties` in `resources` folder and copy\u0026paste the contents form the user profile page\n\n*Example:*\n```properties\n[reportportal.properties]\nrp.endpoint = http://localhost:8080\nrp.uuid = d50810f1-ace9-44fc-b1ba-a0077fb3cc44\nrp.launch = jack_TEST_EXAMPLE\nrp.project = my_test_project\nrp.enable = true\n```\n\n\u003e More details on `reportportal.properties` file could be found [here](https://github.com/reportportal/client-java)\n\n#### 5.2 - Register ReportPortal agent in JUnit 5\nThere are two options how you can enable ReportPortal extension in your tests:\n- By specifying `@ExtendWith` annotation\n- By service location\n\n##### Register ReportPortal extension with annotation\nEach test marked with `@ExtendWith(ReportPortalExtension.class)` will be reporter to ReportPortal.\nThis is an inheritable annotation, that means you can put it on a superclass and all child classes will\nalso use a specified extension.\n\nFor example:  \n```java\nimport com.epam.reportportal.junit5.ReportPortalExtension;\nimport org.junit.jupiter.api.extension.ExtendWith;\nimport org.junit.jupiter.params.ParameterizedTest;\nimport org.junit.jupiter.params.provider.EnumSource;\n\n@ExtendWith(ReportPortalExtension.class)\npublic class EnumParametersTest {\n\n\tpublic enum TestParams {\n\t\tONE,\n\t\tTWO\n\t}\n\n\t@ParameterizedTest\n\t@EnumSource(TestParams.class)\n\tpublic void testParameters(TestParams param) {\n\t\tSystem.out.println(\"Test: \" + param.name());\n\t}\n\n}\n```\n\n##### Register ReportPortal extension through service location\nFor those who implement their own custom extensions we decided to remove `/META-INF/services` file from our project.\nTo use our standard non-custom extension you need to add this file into your project by yourself.\nTo do that create a file named `org.junit.jupiter.api.extension.Extension` in `src/test/resources/META-INF/services` folder\nwith the following content:\n```text\ncom.epam.reportportal.junit5.ReportPortalExtension\n```\n\nAs a final step you need to tell JUnit to register our ReportPortal agent, and there are multiple ways for doing that:\n\n* method 1 - via Maven Surefire/Failsafe plugin (maven only)\n* method 2 - via JVM system property\n* method 3 - via `junit-platform.properties` file\n* method 4 - via Gradle (gradle only)\n\n###### Method 1 - using Maven Surefire/Failsafe plugin (maven only)\n\nAdd a `build` section and Maven Surefire plugin with the following configuration section to `pom.xml`\n\n```xml\n\u003cbuild\u003e\n    \u003cplugins\u003e\n        \u003cplugin\u003e\n            \u003cartifactId\u003emaven-surefire-plugin\u003c/artifactId\u003e\n            \u003cversion\u003e3.0.0-M5\u003c/version\u003e\n            \u003cconfiguration\u003e\n                \u003cproperties\u003e\n                    \u003cconfigurationParameters\u003e\n                        junit.jupiter.extensions.autodetection.enabled = true\n                    \u003c/configurationParameters\u003e\n                \u003c/properties\u003e\n            \u003c/configuration\u003e\n        \u003c/plugin\u003e\n    \u003c/plugins\u003e\n\u003c/build\u003e\n```\nThe `junit.jupiter.extensions.autodetection.enabled = true` configuration parameter of the Surefire plugin links ReportPortal agent with the tests\n\n*Full pom.xml file example*\n\n```xml\n[pom.xml]\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cproject xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\"\u003e\n    \u003cmodelVersion\u003e4.0.0\u003c/modelVersion\u003e\n\n    \u003cgroupId\u003ecom.mycompany\u003c/groupId\u003e\n    \u003cartifactId\u003eMyProject\u003c/artifactId\u003e\n    \u003cversion\u003e1.0-SNAPSHOT\u003c/version\u003e\n\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.epam.reportportal\u003c/groupId\u003e\n            \u003cartifactId\u003eagent-java-junit5\u003c/artifactId\u003e\n            \u003cversion\u003e5.5.7\u003c/version\u003e\n        \u003c/dependency\u003e\n\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.epam.reportportal\u003c/groupId\u003e\n            \u003cartifactId\u003elogger-java-log4j\u003c/artifactId\u003e\n            \u003cversion\u003e5.2.2\u003c/version\u003e\n        \u003c/dependency\u003e\n\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.apache.logging.log4j\u003c/groupId\u003e\n            \u003cartifactId\u003elog4j-api\u003c/artifactId\u003e\n            \u003cversion\u003e2.17.1\u003c/version\u003e\n        \u003c/dependency\u003e\n\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.apache.logging.log4j\u003c/groupId\u003e\n            \u003cartifactId\u003elog4j-core\u003c/artifactId\u003e\n            \u003cversion\u003e2.17.1\u003c/version\u003e\n        \u003c/dependency\u003e\n\n    \u003c/dependencies\u003e\n\n    \u003cbuild\u003e\n        \u003cplugins\u003e\n            \u003cplugin\u003e\n                \u003cartifactId\u003emaven-surefire-plugin\u003c/artifactId\u003e\n                \u003cversion\u003e3.0.0-M5\u003c/version\u003e\n                \u003cconfiguration\u003e\n                    \u003cproperties\u003e\n                        \u003cconfigurationParameters\u003e\n                            junit.jupiter.extensions.autodetection.enabled = true\n                        \u003c/configurationParameters\u003e\n                    \u003c/properties\u003e\n                \u003c/configuration\u003e\n            \u003c/plugin\u003e\n        \u003c/plugins\u003e\n    \u003c/build\u003e\n\n\u003c/project\u003e\n```\n\nNow the ReportPortal agent is linked to your tests and when you run the tests with maven, the results should be sent to ReportPortal\n\n\u003e *Important note*. With this approach, only the tests executed via maven will be sent to ReportPortal, while tests ran by IDE will not trigger the ReportPortal agent and therefore the test-report won't be generated  \n\nTo have test results to be sent to ReportPortal when executed from IDE (without maven), follow the steps below\n\n###### Method 2 - using JVM system property  \n\nAnother way to link test runs with ReportPortal is to add JVM system property to the run arguments for test runs  \nHere is the example of adding run arguments with IntelliJ IDEA  \n\nIn Intellij IDEA go to *Run* -\u003e *Edit Configurations* -\u003e click on \"+\" sign -\u003e select JUnit\n\n\n![IntelliJ IDEA add JUnit Run Configuration with JVM system property](integration_manual_files/step_add_run_configuration.png)\n\nEnter the name of the run, select classes and/or methods to be executed in this configuration and add the following line into *VM Options* field:\n```shell\n-Djunit.jupiter.extensions.autodetection.enabled=true\n```\n\nWhen you are done adding local run configuration, simply go to *Run* -\u003e *Run \u003ctest_run_name\u003e* and that test run results should be sent to ReportPortal\n\n###### Method 3 - using `junit-platform.properties` file\n\nThere is another option of linking ReportPortal with your JUnit 5 tests\n\nAdd `junit-platform.properties` file to your `resources` folder and add the following line there:\n\n```shell\njunit.jupiter.extensions.autodetection.enabled=true\n```\n\n![JUnit 5 platform properties file](integration_manual_files/note_junit5_properties.png)\n\n\u003e More details about JUnit 5 extensions detection configuration could be found [here](https://junit.org/junit5/docs/current/user-guide/#extensions-registration-automatic)\n\nWith this approach, the test report will be generated and sent to ReportPortal in any type of test run, whether it was via maven, gradle or via IDE\n\n###### Method 4 - using Gradle test task (Gradle only)\n\nStarting from gradle version `4.6` it provides native support for JUnit 5 tests via `useJUnitPlatform()`, more details [here](https://junit.org/junit5/docs/current/user-guide/#running-tests-build)\n\nAssuming that you have the gradle project setup, add/edit your `test` task in `gradle.build` file with the following code:\n\n```gradle\ntest {\n    testLogging.showStandardStreams = true\n    useJUnitPlatform()\n    systemProperty 'junit.jupiter.extensions.autodetection.enabled', true\n}\n```\n\n\u003e Please note, that using this method, the test report will be generated only if you ran your tests with Gradle (e.g. `gradle clean test`)\n\n*Full `build.gradle` file example:*\n\n```groovy\n[build.gradle]\napply plugin: 'java'\nsourceCompatibility = 1.8\ntargetCompatibility = 1.8\n\nrepositories {\n    mavenLocal()\n    mavenCentral()\n}\n\ndependencies {\n    implementation 'com.epam.reportportal:logger-java-log4j:5.2.2'\n    implementation 'org.apache.logging.log4j:log4j-api:2.17.1'\n    implementation 'org.apache.logging.log4j:log4j-core:2.17.1'\n    implementation 'com.epam.reportportal:agent-java-junit5:5.5.7'\n}\n\ntest {\n    testLogging.showStandardStreams = true\n    useJUnitPlatform()\n    systemProperty 'junit.jupiter.extensions.autodetection.enabled', true\n}\n```\n\n## Step 6 - Observing test run report\n\nAfter you linked the ReportPortal JUnit 5 agent using one of the approaches described above and ran your tests, you should be able to see the results in your ReportPortal UI instance  \nTo do that, login to ReportPortal, and go to *Left Panel* -\u003e *Launches*\n\nYou should see the launch there, with the name equal to the value of `rp.launch` from your `reportportal.properties` file\n\n*Example:*\n\n![RP. Launches](integration_manual_files/step_launches.png)\n\nYou can also see the test classes and individual test results by clicking on the launch name and going deeper\n\n![RP. Test Results](integration_manual_files/step_test_results.png)\n\n# Copyright Notice\n\nLicensed under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) license (see the LICENSE.md file).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freportportal%2Fagent-java-junit5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freportportal%2Fagent-java-junit5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freportportal%2Fagent-java-junit5/lists"}