{"id":25776807,"url":"https://github.com/dodie/scott","last_synced_at":"2026-01-14T03:05:20.156Z","repository":{"id":36473598,"uuid":"40779062","full_name":"dodie/scott","owner":"dodie","description":"Never debug a test again: Detailed failure reports and hassle free assertions for Java tests - Power Asserts for Java","archived":false,"fork":false,"pushed_at":"2021-09-29T20:06:52.000Z","size":935,"stargazers_count":138,"open_issues_count":3,"forks_count":17,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-27T06:06:56.672Z","etag":null,"topics":["asm","assertions","failure-messages","java","junit","scott","testing-tools"],"latest_commit_sha":null,"homepage":"https://advancedweb.hu/junit-and-cucumber-test-reports-based-on-source-code-and-behavior/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dodie.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-15T19:01:56.000Z","updated_at":"2025-02-10T03:23:03.000Z","dependencies_parsed_at":"2022-08-22T18:50:13.724Z","dependency_job_id":null,"html_url":"https://github.com/dodie/scott","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/dodie/scott","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodie%2Fscott","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodie%2Fscott/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodie%2Fscott/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodie%2Fscott/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dodie","download_url":"https://codeload.github.com/dodie/scott/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodie%2Fscott/sbom","scorecard":{"id":349507,"data":{"date":"2025-08-11","repo":{"name":"github.com/dodie/scott","commit":"ade4745494a27d63fed2b109ef4bbcb3d29fb67c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/21 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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":7,"reason":"binaries present in source code","details":["Warn: binary detected: scott-examples/junit4/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: scott-examples/junit5/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: scott-gradle-plugin/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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"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":"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":"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: MIT License: 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":"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":"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 10 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"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-8vhq-qq4p-grq3","Warn: Project is vulnerable to: GHSA-g6ph-x5wf-g337","Warn: Project is vulnerable to: GHSA-jcwr-x25h-x5fh"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T07:58:04.124Z","repository_id":36473598,"created_at":"2025-08-18T07:58:04.124Z","updated_at":"2025-08-18T07:58:04.124Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408800,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["asm","assertions","failure-messages","java","junit","scott","testing-tools"],"created_at":"2025-02-27T06:01:31.453Z","updated_at":"2026-01-14T03:05:20.143Z","avatar_url":"https://github.com/dodie.png","language":"Java","readme":"[![License](https://img.shields.io/github/license/dodie/scott.svg)](https://github.com/dodie/scott/blob/master/LICENSE)\n[![Maven Central](https://img.shields.io/maven-central/v/hu.advancedweb/scott.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22hu.advancedweb%22%20AND%20a%3A%22scott%22)\n[![Build Status](https://dev.azure.com/dodiehun/scott/_apis/build/status/dodie.scott?branchName=master)](https://dev.azure.com/dodiehun/scott/_build/latest?definitionId=2\u0026branchName=master)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=hu.advancedweb%3Ascott\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=hu.advancedweb%3Ascott)\n\nScott Test Reporter for Maven and Gradle\n========================================\n\nGet extremely detailed failure messages for your tests without assertion libraries, additional configuration or changes on existing tests.\n\n![Scott in Action](https://github.com/dodie/scott/blob/master/docs/scott-in-action.png)\n\nAs you can see, besides the usual assertion error, Scott reports the state changes and assignments in the test cases, nicely\nvisualized on the source code of the test method.\n\nWorks well with other testing tools and frameworks, for example:\n- [JUnit 5](https://github.com/dodie/scott/tree/master/scott-examples/junit5)\n- [JUnit 4](https://github.com/dodie/scott/tree/master/scott-examples/junit4)\n- [Cucumber Java](https://github.com/dodie/scott/tree/master/scott-examples/cucumber-io-cucumber)\n- Mockito\n\nSupports Java 7+ (up to Java 17).\n\n\nHow to use\n----------\n\nJust drop it into your project, and Scott will automatically enhance your test reports. You don't have to use any special APIs\nor modify your existing tests to make it work.\n\n\u003e **Scott**: All systems automated and ready. A chimpanzee and two trainees could run her.\n\u003e \n\u003e **Kirk**: Thank you, Mr. Scott. I'll try not to take that personally.\n\n\n### Gradle\n\nAdd [hu.advanceweb.scott-gradle-plugin](https://plugins.gradle.org/plugin/hu.advancedweb.scott-gradle-plugin) to your [build.gradle](https://github.com/dodie/scott/blob/master/scott-examples/junit4/build.gradle):\n```groovy\nplugins {\n  id \"hu.advanceweb.scott-gradle-plugin\" version \"4.0.1\"\n}\n```\n\nExample projects:\n- [JUnit 4](https://github.com/dodie/scott/tree/master/scott-examples/junit4)\n- [JUnit 5](https://github.com/dodie/scott/tree/master/scott-examples/junit5)\n\n\n### Maven\n\nAdd the following to your [pom.xml](https://github.com/dodie/scott/blob/master/scott-examples/junit4/pom.xml):\n```xml\n\u003cbuild\u003e\n\t\u003cplugins\u003e\n\t\t\u003c!-- Add the Scott Plugin. --\u003e\n\t\t\u003cplugin\u003e\n\t\t\t\u003cgroupId\u003ehu.advancedweb\u003c/groupId\u003e\n\t\t\t\u003cartifactId\u003escott-maven-plugin\u003c/artifactId\u003e\n\t\t\t\u003cversion\u003e4.0.1\u003c/version\u003e\n\t\t\t\u003cexecutions\u003e\n\t\t\t\t\u003cexecution\u003e\n\t\t\t\t\t\u003cgoals\u003e\n\t\t\t\t\t\t\u003cgoal\u003eprepare-agent\u003c/goal\u003e\n\t\t\t\t\t\u003c/goals\u003e\n\t\t\t\t\u003c/execution\u003e\n\t\t\t\u003c/executions\u003e\n\t\t\u003c/plugin\u003e\n\t\u003c/plugins\u003e\n\u003c/build\u003e\n\u003cdependencies\u003e\n\t\u003c!-- Add Scott as a dependency --\u003e\n\t\u003cdependency\u003e\n\t\t\u003cgroupId\u003ehu.advancedweb\u003c/groupId\u003e\n\t\t\u003cartifactId\u003escott\u003c/artifactId\u003e\n\t\t\u003cversion\u003e4.0.1\u003c/version\u003e\n\t\t\u003cscope\u003etest\u003c/scope\u003e\n\t\u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nThe `scott-maven-plugin` automatically configures `maven-surefire-plugin` and `maven-failsafe-plugin` to use Scott via the `argLine` project property. If you wish to further customize the `argLine` property for these plugins, you have to pass the managed `argLine` as well to ensure Scott works properly. For an example, check the following snippet that configures the surefire plugin to enable preview language features for Java:\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\n    \u003cartifactId\u003emaven-surefire-plugin\u003c/artifactId\u003e\n    \u003cconfiguration\u003e\n        \u003cargLine\u003e${argLine} --enable-preview\u003c/argLine\u003e\n    \u003c/configuration\u003e\n\u003c/plugin\u003e\n```\n\nExample projects:\n- [JUnit 4](https://github.com/dodie/scott/tree/master/scott-examples/junit4)\n- [JUnit 5](https://github.com/dodie/scott/tree/master/scott-examples/junit5)\n\n\n### Cucumber\n\nScott for Cucumber tracks **whole scenarios**, and in case of a failure it prints the details of every step involved.\n\nThis feature provides valuable information if a test fails in a CI environment, as it can make it much easier to reproduce and fix browser-based tests, especially for flaky tests.\n\n![HTML](https://github.com/dodie/scott-showcase/blob/master/cucumber_html_main.jpeg \"HTML\")\n\nExample project:\n- [io.cucumber:cucumber-java](https://github.com/dodie/scott/tree/master/scott-examples/cucumber-io-cucumber)\n\n\n### Wire it up manually\n\nIf you can't use the Gradle or Maven Plugin for some reason, you can do the necessary integration steps\n[manually](https://github.com/dodie/scott/blob/master/docs/manual_setup.md).\n\n\nConfiguration\n-------------\nIn case you are not satisfied with the default tracking behavior, the Scott Maven Plugin and Gradle Plugin provides [configuration options](https://github.com/dodie/scott/blob/master/docs/configuration.md) to fine-tune its behaviour.\n\n\nUsing Scott as an instrumentation library\n-----------------------------------------\nScott's instrumentation module can be invoked programmatically with fine-tuned instrumentation rules so you can\nbuild your own solution on top of Scott. For more information, check the [user guide](https://github.com/dodie/scott/blob/master/docs/scott_as_a_library.md),\nand for an actual example, see [GhostWriter](https://github.com/GoodGrind/ghostwriter).\n\n\nChangelog\n---------\nSee [Releases](https://github.com/dodie/scott/releases).\n\n\n**Highlights from the latest releases:**\n\n- Java 17 support\n- [Gradle Plugin](https://github.com/dodie/scott/blob/master/readme.md#how-to-use)\n- [Maven Plugin](https://github.com/dodie/scott/blob/master/readme.md#how-to-use)\n- [Support for io.cucumber:cucumber-java](https://github.com/dodie/scott/tree/master/scott-examples/cucumber-io-cucumber)\n- [Customizable tracking behavior](https://github.com/dodie/scott/blob/master/docs/configuration.md#configuring-the-automatic-tracking-behavior-with-the-maven-plugin)\n\n\nLimitations\n-----------\n- JUnit 5 dynamic tests are unsupported because JUnit lifecycle callbacks are not invoked for them (https://github.com/dodie/scott/issues/30)\n\n\nContributing\n------------\nContributions are welcome! Please make sure to visit the\n[contribution](https://github.com/dodie/scott/tree/master/CONTRIBUTING.md) and \n[development guide](https://github.com/dodie/scott/tree/master/docs/development-guide.md) for some important notes on how to build and debug Scott.\n","funding_links":[],"categories":["测试"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodie%2Fscott","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdodie%2Fscott","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodie%2Fscott/lists"}