{"id":15434192,"url":"https://github.com/hdorgeval/testcafe-static-analyser","last_synced_at":"2026-02-25T20:32:31.675Z","repository":{"id":87275228,"uuid":"127780106","full_name":"hdorgeval/testcafe-static-analyser","owner":"hdorgeval","description":"This tool performs a static analysis of your TestCafe tests and produces a nice and searchable html report","archived":false,"fork":false,"pushed_at":"2018-12-18T12:08:20.000Z","size":722,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-09T17:42:15.660Z","etag":null,"topics":["e2e","gherkin","report-generator","static-code-analysis","testcafe","visual-studio-code","vscode"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hdorgeval.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-04-02T16:09:28.000Z","updated_at":"2021-12-01T17:41:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"da02b42c-5a8a-4874-ace4-761b68dddd83","html_url":"https://github.com/hdorgeval/testcafe-static-analyser","commit_stats":{"total_commits":33,"total_committers":3,"mean_commits":11.0,"dds":0.5151515151515151,"last_synced_commit":"bbef46a8e5284b9f45a6281f707789cf48478ff9"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/hdorgeval/testcafe-static-analyser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Ftestcafe-static-analyser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Ftestcafe-static-analyser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Ftestcafe-static-analyser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Ftestcafe-static-analyser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hdorgeval","download_url":"https://codeload.github.com/hdorgeval/testcafe-static-analyser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hdorgeval%2Ftestcafe-static-analyser/sbom","scorecard":{"id":458868,"data":{"date":"2025-08-11","repo":{"name":"github.com/hdorgeval/testcafe-static-analyser","commit":"bbef46a8e5284b9f45a6281f707789cf48478ff9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.3,"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 2/23 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":"0 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":10,"reason":"no binaries found in the repo","details":null,"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":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"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":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"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 9 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":0,"reason":"23 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-pp7h-53gx-mx7r","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-fhjf-83wg-r2j9","Warn: Project is vulnerable to: GHSA-8hfj-j24r-96c4","Warn: Project is vulnerable to: GHSA-wc69-rhjr-hc9g","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr"],"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-19T10:33:05.870Z","repository_id":87275228,"created_at":"2025-08-19T10:33:05.871Z","updated_at":"2025-08-19T10:33:05.871Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29838087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T19:08:47.527Z","status":"ssl_error","status_checked_at":"2026-02-25T18:59:04.705Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["e2e","gherkin","report-generator","static-code-analysis","testcafe","visual-studio-code","vscode"],"created_at":"2024-10-01T18:37:51.288Z","updated_at":"2026-02-25T20:32:31.660Z","avatar_url":"https://github.com/hdorgeval.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TestCafe Static Analyser (beta)\n\n## A tool that analyses the source code of your TestCafe tests and generates a nice and searchable html report from it.\n\n**This tool allows you to show fixtures and tests in a [Gherkin-like format](#generating-a-gherkin-like-report), even if you do not use gherkin at all.**\n\n[![npm badge](https://nodei.co/npm/testcafe-static-analyser.png)](https://npmjs.org/package/testcafe-static-analyser)\n\n## To install TestCafe Static Analyser\n\n* run the command `npm install --save-dev testcafe-static-analyser`.\n\n## To start TestCafe Static Analyser\n\n* insert the following script in the `package.json` file:\n```javascript\n\"testcafe-static-analyser\": \"testcafe-static-analyser\"\n```\n* run the command `npm run testcafe-static-analyser`\n    * this will create the `testcafe-static-analyser.json` file\n    * in this file, modify the `sourceFiles` section\n    * re-run the command \n\n## To configure TestCafe Static Analyser\n\n* open the [testcafe-static-analyser.json](testcafe-static-analyser.json) file\n* to get rid of a tag in the report, add this tag to the `noisyTags` section\n\n## How it works\n\n* Every `fixture` is automatically tagged by analysing its folder hierarchy, its filename, its description and the `.meta` declarations;\n* Every `test` is automatically tagged by analysing its description and the `.meta` declarations\n* Every `step` that may be present in a `test` is also automatically tagged by analysing its description;\n* every tag generated at the `step` and the `test` levels is bubbled up to the `fixture` tags;\n* The html report enables you to search/filter `fixtures` by tag.\n\n## How it looks\n\n* Fixtures are reported as Features and tests as Scenarios\n\n![report](media/static-reporter1.png)\n![Fixture details](media/static-reporter2.png)\n![Fixture details](media/static-reporter3.png)\n![Fixture details](media/static-reporter4.png)\n\n## Samples\n\n### TestCafe repo\n\n* running testcafe-static-analyser on the TestCafe repo itself will produce the following report (the report has been filtered with the word `editable`):\n\n![Filtered fixtures](media/testcafe-repo.png)\n\n* clicking on the `GH-711` will produce the details of the selected fixture:\n\n![Fixture details](media/testcafe-repo-fixture-detail.png)\n\n### generating a gherkin like report \n\n* the following code:\n```javascript\ntest(\"Scenario: scenario example\", async () =\u003e {\n  // Only on devci\n  code omitted for brevity\n\n  // Given I signed in the App\n  code omitted for brevity\n\n  // When I enter my name\n  code omitted for brevity\n\n  // And I enter my email\n  code omitted for brevity\n\n  // Then I can send my feedback to TestCafe team\n  code omitted for brevity\n});\n\n```\n\nwill produce the following report:\n![Fixture details](media/sample1.png)\n\n## The vision\n\n* Be able to have an high overview of all existing e2e TestCafe tests;\n* Be able to dynamically tag at any level\n* Be able to find all tests associated to a specific tag;\n* Be able to merge the result of tests executions (need to write a custom testcafe reporter for this purpose);\n* Be extensible to enable any third-party to add custom parsers and tags (without cloning the project);\n* Be extensible to make the html report customizable (without cloning the project).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdorgeval%2Ftestcafe-static-analyser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhdorgeval%2Ftestcafe-static-analyser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhdorgeval%2Ftestcafe-static-analyser/lists"}