{"id":28990863,"url":"https://github.com/junit-team/junit-framework","last_synced_at":"2026-04-26T13:04:45.888Z","repository":{"id":25666609,"uuid":"29102367","full_name":"junit-team/junit-framework","owner":"junit-team","description":"✅ The programmer-friendly testing framework for Java and the JVM","archived":false,"fork":false,"pushed_at":"2026-04-20T06:47:48.000Z","size":42839,"stargazers_count":7000,"open_issues_count":120,"forks_count":1668,"subscribers_count":263,"default_branch":"main","last_synced_at":"2026-04-20T08:13:50.609Z","etag":null,"topics":["java","junit","junit-jupiter","junit-platform","junit-vintage","kotlin","kotlin-testing","test-framework"],"latest_commit_sha":null,"homepage":"https://junit.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/junit-team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"junit-team","custom":"https://steadyhq.com/junit"}},"created_at":"2015-01-11T19:06:10.000Z","updated_at":"2026-04-20T06:14:44.000Z","dependencies_parsed_at":"2026-03-24T15:03:09.830Z","dependency_job_id":null,"html_url":"https://github.com/junit-team/junit-framework","commit_stats":{"total_commits":8511,"total_committers":279,"mean_commits":30.50537634408602,"dds":0.6591469862530843,"last_synced_commit":"c877702ea5edbf835478bdf84825056f7abbbd75"},"previous_names":["junit-team/junit-framework"],"tags_count":112,"template":false,"template_full_name":null,"purl":"pkg:github/junit-team/junit-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junit-team%2Fjunit-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junit-team%2Fjunit-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junit-team%2Fjunit-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junit-team%2Fjunit-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junit-team","download_url":"https://codeload.github.com/junit-team/junit-framework/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junit-team%2Fjunit-framework/sbom","scorecard":{"id":485459,"data":{"date":"2025-08-19T10:00:01Z","repo":{"name":"github.com/junit-team/junit-framework","commit":"7041459237c0135af2b7b1c87b119d450ac07976"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":8.6,"checks":[{"name":"Code-Review","score":3,"reason":"Found 7/18 approved changesets -- score normalized to 3","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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 21 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: RenovateBot: .github/renovate.json5:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/gradle-dependency-submission.yml:18","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:259","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/zizmor-analysis.yml:21","Info: found token with 'none' permissions: .github/workflows/close-inactive-issues.yml:1","Info: found token with 'none' permissions: .github/workflows/codeql.yml:1","Info: found token with 'none' permissions: .github/workflows/cross-version.yml:1","Info: found token with 'none' permissions: .github/workflows/gradle-dependency-submission.yml:1","Info: found token with 'none' permissions: .github/workflows/label-opened-issues.yml:1","Info: found token with 'none' permissions: .github/workflows/label-pull-request.yml:1","Info: found token with 'none' permissions: .github/workflows/main.yml:1","Info: found token with 'none' permissions: .github/workflows/ossf-scorecard.yml:1","Info: found token with 'none' permissions: .github/workflows/release.yml:1","Info: found token with 'none' permissions: .github/workflows/reproducible-build.yml:1","Info: found token with 'none' permissions: .github/workflows/sanitize-closed-issues.yml:1","Info: found token with 'none' permissions: .github/workflows/zizmor-analysis.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  37 out of  37 GitHub-owned GitHubAction dependencies pinned","Info:   8 out of   8 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/ab2f6e92482462fe66246d9e32f642855a691dc1/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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (19) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: Eclipse Public License 2.0: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"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/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"CI-Tests","score":10,"reason":"16 out of 16 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}},{"name":"Contributors","score":10,"reason":"project has 59 contributing companies or organizations","details":["Info: found contributions from: GitHub-Stars, GradleWeaver, LikeLionSCH, OnepieceSoftware, VantaInc, WPIRoboticsProjects, allthingsgit, apache, apache @webtoon, apiguardian-team, arineo gmbh, asciidoctor, assertj, black duck, broadcom, clar-test, consensys - @infura, craftsrecords, diffplug, dogged, epam, git, git-for-windows, gradle, gradle-nexus, gradlex-org, greek welfare centre of south australia - st philothei, gridgain, griffon, griffon-plugins, groovyfx-project, gwizard, hackergarten, heidelberg institute for geoinformation technology, jreleaser, jsr377, junit-community, junit-pioneer, junit-team, libgit2, londongit, mindersec, openjdk, oracle, oracle-actions, ota4j-team, sainsbury's, sapcxtools, shodo, sixpointsoftware, softwerkskammer, spockframework, spring-projects, stripe, test-summary, usus, vanta, wpilibsuite, xpdays"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}}]},"last_synced_at":"2025-08-19T17:39:01.333Z","repository_id":25666609,"created_at":"2025-08-19T17:39:01.333Z","updated_at":"2025-08-19T17:39:01.333Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32297940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"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","junit","junit-jupiter","junit-platform","junit-vintage","kotlin","kotlin-testing","test-framework"],"created_at":"2025-06-25T01:01:19.415Z","updated_at":"2026-04-26T13:04:45.863Z","avatar_url":"https://github.com/junit-team.png","language":"Java","readme":"\u003ch1\u003e\n  \u003cpicture width=\"200\"\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://junit.org/assets/img/junit-logo-inverted-darker.svg\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://junit.org/assets/img/junit-logo.svg\"\u003e\n    \u003cimg alt=\"JUnit\" src=\"https://junit.org/assets/img/junit-logo.svg\" width=\"200\"\u003e\n  \u003c/picture\u003e\n\u003c/h1\u003e\n\nThis repository is the home of JUnit Platform, Jupiter, and Vintage.\n\n## Sponsors\n\n[![Support JUnit](https://img.shields.io/badge/%F0%9F%92%9A-Support%20JUnit-brightgreen.svg)](https://junit.org/sponsoring)\n\n* **Gold Sponsors:** [JetBrains](https://jb.gg/junit-logo), [Netflix](https://www.netflix.com/)\n* **Silver Sponsors:** [Micromata](https://www.micromata.de), [Quo Card](https://quo-digital.jp)\n* **Bronze Sponsors:** [Premium Minds](https://www.premium-minds.com), [codefortynine](https://codefortynine.com), [Info Support](https://www.infosupport.com), [Code Intelligence](https://www.code-intelligence.com), [Route4Me](https://route4me.com/), [Testiny](https://www.testiny.io/), [TestMu AI](https://www.testmuai.com/?utm_medium=sponsor\u0026utm_source=junit)\n\n## Latest Releases\n\n- General Availability (GA): [JUnit 6.0.3](https://github.com/junit-team/junit-framework/releases/tag/r6.0.3) (February 15, 2026)\n- Preview (Milestone/Release Candidate): [JUnit 6.1.0-RC1](https://github.com/junit-team/junit-framework/releases/tag/r6.1.0-RC1) (April 25, 2026)\n\n## Documentation\n\n- [User Guide]\n- [Javadoc]\n- [Release Notes]\n- [Examples]\n\n## Contributing\n\nContributions to JUnit are both welcomed and appreciated. For specific guidelines\nregarding contributions, please see [CONTRIBUTING.md] in the root directory of the\nproject. Those willing to use milestone or SNAPSHOT releases are encouraged\nto file feature requests and bug reports using the project's\n[issue tracker](https://github.com/junit-team/junit-framework/issues). Issues marked with an\n\u003ca href=\"https://github.com/junit-team/junit-framework/issues?q=is%3Aissue+is%3Aopen+label%3Aup-for-grabs\"\u003e`up-for-grabs`\u003c/a\u003e\nlabel are specifically targeted for community contributions.\n\n## Getting Help\n\nAsk JUnit-related questions on [StackOverflow] or use the Q\u0026A category on [GitHub Discussions].\n\n## Continuous Integration Builds\n\n[![CI](https://github.com/junit-team/junit-framework/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/junit-team/junit-framework/actions/workflows/main.yml) [![Cross-Version](https://github.com/junit-team/junit-framework/actions/workflows/cross-version.yml/badge.svg?branch=main)](https://github.com/junit-team/junit-framework/actions/workflows/cross-version.yml)\n\nOfficial CI build server used to perform quick checks on submitted pull requests and for\nbuild matrices including the latest released OpenJDK and early access builds of the next\nOpenJDK.\n\n## Code Coverage\n\nCode coverage using [JaCoCo] for the latest build is available on [Codecov].\n\nA code coverage report can also be generated locally via the [Gradle Wrapper] by\nexecuting `./gradlew clean jacocoRootReport`. The results will be available\nin `build/reports/jacoco/jacocoRootReport/html/index.html`.\n\n## Develocity\n\n[![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle\u0026labelColor=02303A)](https://ge.junit.org/scans)\n\nJUnit utilizes [Develocity](https://gradle.com/) for [Build Scans](https://scans.gradle.com/),\n[Build Cache](https://docs.gradle.org/current/userguide/build_cache.html), and\n[Predictive Test Selection](https://docs.gradle.com/enterprise/predictive-test-selection/).\n\nThe latest Build Scans are available on [ge.junit.org](https://ge.junit.org/). Currently,\nonly core team members can publish Build Scans on that server.\nYou can, however, publish a Build Scan to [scans.gradle.com](https://scans.gradle.com/) by\nusing the `--scan` parameter explicitly.\n\nThe remote Build Cache is enabled by default for everyone so that local builds can reuse\ntask outputs from previous CI builds.\n\n## Building from Source\n\nYou need [JDK 25] to build JUnit. [Gradle toolchains] are used to detect and\npotentially download additional JDKs for compilation and test execution.\n\nAll modules can be _built_ and _tested_ with the [Gradle Wrapper] using the following command:\n\n`./gradlew build`\n\nAll modules can be _installed_ in a local Maven repository for consumption in other local\nprojects via the following command:\n\n`./gradlew publishToMavenLocal`\n\n## Dependency Metadata\n\n[![JUnit Jupiter version](https://img.shields.io/maven-central/v/org.junit.jupiter/junit-jupiter/6..svg?color=25a162\u0026label=Jupiter)](https://central.sonatype.com/search?namespace=org.junit.jupiter)\n[![JUnit Vintage version](https://img.shields.io/maven-central/v/org.junit.vintage/junit-vintage-engine/6..svg?color=25a162\u0026label=Vintage)](https://central.sonatype.com/search?namespace=org.junit.vintage)\n[![JUnit Platform version](https://img.shields.io/maven-central/v/org.junit.platform/junit-platform-commons/6..svg?color=25a162\u0026label=Platform)](https://central.sonatype.com/search?namespace=org.junit.platform)\n\nConsult the [Dependency Metadata] section of the [User Guide] for a list of all artifacts\nof the JUnit Platform, JUnit Jupiter, and JUnit Vintage.\n\n\n[Codecov]: https://codecov.io/gh/junit-team/junit-framework\n[CONTRIBUTING.md]: https://github.com/junit-team/junit-framework/blob/HEAD/CONTRIBUTING.md\n[Dependency Metadata]: https://docs.junit.org/current/appendix.html#dependency-metadata\n[GitHub Discussions]: https://github.com/junit-team/junit-framework/discussions/categories/q-a\n[Gradle toolchains]: https://docs.gradle.org/current/userguide/toolchains.html\n[Gradle Wrapper]: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:using_wrapper\n[JaCoCo]: https://www.eclemma.org/jacoco/\n[Javadoc]: https://api.junit.org\n[JDK 25]: https://javaalmanac.io/jdk/25/\n[Release Notes]: https://docs.junit.org/current/release-notes.html\n[Examples]: https://github.com/junit-team/junit-examples\n[StackOverflow]: https://stackoverflow.com/questions/tagged/junit5\n[User Guide]: https://docs.junit.org\n","funding_links":["https://github.com/sponsors/junit-team","https://steadyhq.com/junit"],"categories":["Java","Don't forget to give a :star: to make the project popular"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunit-team%2Fjunit-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunit-team%2Fjunit-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunit-team%2Fjunit-framework/lists"}