{"id":19069496,"url":"https://github.com/bats-core/bats-vscode","last_synced_at":"2025-12-11T21:52:48.099Z","repository":{"id":35515025,"uuid":"135822491","full_name":"bats-core/bats-vscode","owner":"bats-core","description":"BATS (Bash Automated Testing System) language support for VSCode.","archived":false,"fork":false,"pushed_at":"2024-03-21T17:41:11.000Z","size":2551,"stargazers_count":26,"open_issues_count":7,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-21T00:29:12.567Z","etag":null,"topics":["bats","language-support","shell","testing-tools","vscode"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/bats-core.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2018-06-02T14:03:00.000Z","updated_at":"2025-06-15T06:05:47.000Z","dependencies_parsed_at":"2024-03-03T04:24:30.063Z","dependency_job_id":"f04a345b-6b0f-41fa-a1aa-a8b121c98daf","html_url":"https://github.com/bats-core/bats-vscode","commit_stats":null,"previous_names":["bats-core/bats-vscode","jetmartin/bats"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/bats-core/bats-vscode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bats-core%2Fbats-vscode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bats-core%2Fbats-vscode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bats-core%2Fbats-vscode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bats-core%2Fbats-vscode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bats-core","download_url":"https://codeload.github.com/bats-core/bats-vscode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bats-core%2Fbats-vscode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271901274,"owners_count":24841115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"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":["bats","language-support","shell","testing-tools","vscode"],"created_at":"2024-11-09T01:14:36.518Z","updated_at":"2025-12-11T21:52:43.076Z","avatar_url":"https://github.com/bats-core.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BATS (Bash Automated Testing System) for VSCode\n\n[![Current Version](https://img.shields.io/visual-studio-marketplace/v/jetmartin.bats.svg?color=emerald\u0026label=Visual%20Studio%20Marketplace\u0026logo=visual-studio-code\u0026logoColor=blue\u0026style=flat)\n![Install Count](https://img.shields.io/visual-studio-marketplace/i/jetmartin.bats.svg?color=emerald\u0026style=flat)\n![downloads Count](https://img.shields.io/visual-studio-marketplace/d/jetmartin.bats.svg?color=emerald\u0026style=flat)][marketplace]\n [![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/bats-core/bats-vscode.svg?color=emerald\u0026label=release\u0026logoColor=white\u0026logo=github\u0026labelColor=grey)][github]\n[![license](https://img.shields.io/badge/license-MIT-brightgreen.svg)][MIT]\n\nThis extension adds language support for the [Bats] (Bash Automated Testing System) testing framework to [VS Code][vscode].\n\n## ![tada][_tada] Features\n\n![Bats overview](images/bats.gif)\n\n- [x] **Bats** language support for VSCode\n- [x] Syntax highlighting for core functions\n- [x] Syntax highlighting for community modules\n- [x] Code Snippets for quick coding for core functions\n- [x] Code Snippets for quick coding for community modules\n\n[\u003cimg alt=\"Bats logo\" align=\"right\" src=\"images/icon.png\"\u003e][Bats]\n\n## ![bat][_bat] Bats\n\n[Bash Automated Testing System (2021)][bats-core] is a [community-maintained][@bats-core] Bats project.\n\u003e (c) 2011-2016 [Sam Stephenson][@sstephenson]\\\n\u003e (c) 2017-2021 [bats-core organization][@bats-core]\n\nBats is a [TAP]-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected.\n\nA **`.bats`** test file is a Bash script with special syntax for defining test cases. Under the hood, each test case is just a function with a description.\n\n\u003e ![Note][_information_source] \\\n\u003e See [bats-core README][bats-readme] for documentation on how to use [Bats].\n\n\u003c!-- next color rebeccapurple, thistle, darkcyan, sandybrown, darkseagreen --\u003e\n\n### Bats modules\n\nProject | version | code snippets | syntax highlighting\n :--- | ---: |  :---: | :---:\n\u003chttps://github.com/bats-core/bats-core\u003e      | [![bats-core project][badge-core]][bats-core-l]          | ![Y][_white_check_mark] | ![Y][_white_check_mark]\n\u003chttps://github.com/bats-core/bats-assert\u003e | [![bats-assert project][badge-assert]][bats-assert-l]    | ![Y][_white_check_mark] | ![Y][_white_check_mark]\n\u003chttps://github.com/bats-core/bats-support\u003e  | [![bats-support project][badge-support]][bats-support-l] | ![N][_negative_squared_cross_mark] | ![Y][_white_check_mark]\n\u003chttps://github.com/bats-core/bats-file\u003e        | [![bats-file project][badge-file]][bats-file-l]          | ![N][_negative_squared_cross_mark] | ![Y][_white_check_mark]\n\u003chttps://github.com/lox/bats-mock\u003e            | [![bats-mock project][badge-mock]][bats-mock-l]          | ![N][_negative_squared_cross_mark] | ![Y][_white_check_mark]\n\n## ![scissors][_scissors] Snippets\n\nThese modules have snippets:\n\n- [x] \u003chttps://github.com/bats-core/bats-core\u003e\n- [x] \u003chttps://github.com/bats-core/bats-assert\u003e\n- [ ] \u003chttps://github.com/bats-core/bats-support\u003e\n- [ ] \u003chttps://github.com/bats-core/bats-file\u003e\n- [ ] \u003chttps://github.com/lox/bats-mock\u003e\n\nType `BATS:*snippet*` to use snippets.\n\n[![bats-core snippets][badge-core]][bats-core-l]\n\n- [x] **BATS:env**               : shebang.\n- [x] **BATS:setup**             : Setup function.\n- [x] **BATS:teardown**          : Teardown function.\n- [x] **BATS:load**              : Load common code.\n- [x] **BATS:bats_load_library** : Load system-wide libraries.\n- [x] **BATS:test**              : Test case.\n- [x] **BATS:status**            : Test status code.\n- [x] **BATS:output**            : Test output.\n- [x] **BATS:line**              : Test line output.\n- [x] **BATS:skip**              : Skip test.\n\n[![bats-assert snippets][badge-assert]][bats-assert-l]\n\n- [x] **BATS:assert**\n- [x] **BATS:assert_output**\n- [x] **BATS:assert_line**\n- [x] **BATS:assert_success**\n- [x] **BATS:assert_failure**\n- [x] **BATS:assert_equal**\n- [x] **BATS:assert_not_equal**\n- [x] **BATS:refute**\n- [x] **BATS:refute_output**\n- [x] **BATS:refute_line**\n\n\u003c!-- [![bats-support snippets][badge-support]][bats-support-l]\\\n![construction][_construction] --\u003e\n\n\u003c!-- [![bats-file snippets][badge-file]][bats-file-l]\\\n![construction][_construction] --\u003e\n\n\u003c!-- [![bats-mock snippets][badge-mock]][bats-mock-l]\\\n![construction][_construction] --\u003e\n\n## ![flashlight][_flashlight] Syntax highlighting\n\nThese modules have syntax highlighting support:\n\n- [x] \u003chttps://github.com/bats-core/bats-core\u003e\n- [x] \u003chttps://github.com/bats-core/bats-assert\u003e\n- [x] \u003chttps://github.com/bats-core/bats-support\u003e\n- [x] \u003chttps://github.com/bats-core/bats-file\u003e\n- [x] \u003chttps://github.com/lox/bats-mock\u003e\n\n\u003c!--  \u003chttps://github.com/grayhemp/bats-mock\u003e :thinking: --\u003e\n\n### ![art][_art] Color customizations\n\nIf you want `Bats` syntax highlighting to look different to `shellscript` syntax, you can change your user preferences or workspace settings (`.vscode/settings.json`).\n\nDefault theme, for `shellscript`:\n\n![Bats overview](images/default_colours.png)\n\nExample after saving the `editor.tokenColorCustomizations` settings below.\n\n![Bats overview](images/custom_colours.png)\n\nAdd this to your VS Code settings.\n\n```json\n{\n    \"editor.tokenColorCustomizations\": {\n        \"textMateRules\": [\n            {\n                \"scope\": \"keyword.control.bats\",\n                \"settings\": {\n                    \"foreground\": \"#9f1fd1\",\n                    \"fontStyle\": \"italic\"\n                }\n            },\n            {\n                \"scope\": \"support.function.bats\",\n                \"settings\": {\n                    \"foreground\": \"#d41515\",\n                    \"fontStyle\": \"italic\"\n                }\n            },\n            {\n                \"scope\": \"support.variable.bats\",\n                \"settings\": {\n                    \"foreground\": \"#329432\",\n                    \"fontStyle\": \"italic\"\n                }\n            }\n        ]\n    }\n}\n```\n\n[\u003cimg alt=\"Bats logo\" align=\"right\" src=\"images/icon.png\"\u003e][Bats]\n\n## Installation\n\n### Extension Marketplace\n\nThis extension is published in the [VSCode marketplace][marketplace].\n\n 1. Run [Install Extensions] from the [Command Palette]\n 1. Search and choose  [**`bats`**][marketplace].\n\n### Release Notes\n\nSee [Changelog].\n\n### ![exclamation][_exclamation]Known Issues\n\n[![GitHub issues](https://img.shields.io/github/issues/bats-core/bats-vscode.svg?color=tomato)][issues]\n\nFeel free to report any [issues][new issue].\n\n## Related Projects\n\nIf you like [Bats], you may also like [ShellCheck][shellcheck] and the [VSCode extension][vscode-shellcheck]\n\nThis extension was inspired by [sublime-bats].\n\n## ![scroll][_scroll] License\n\n[\u003cimg alt=\"humans.txt\" align=\"right\" src=\"images/humanstxt-isolated-blank.gif\"\u003e][humanstxt]\n\n[MIT]\n\n\u003c!-- Links --\u003e\n\n[Bats]: \u003chttps://github.com/bats-core/bats-core\u003e\n[v1.5.0]: \u003chttps://github.com/bats-core/bats-core/releases/tag/v1.5.0\u003e\n[sBats]: \u003chttps://github.com/sstephenson/bats\u003e\n[@sstephenson]: \u003chttps://github.com/sstephenson\u003e\n[@bats-core]: \u003chttps://github.com/bats-core\u003e\n[TAP]: \u003chttps://testanything.org/\u003e\n[Bash]: \u003chttps://www.gnu.org/software/bash/\u003e\n[bats-readme]: \u003chttps://github.com/bats-core/bats-core/blob/master/README.md\u003e\n[marketplace]: \u003chttps://marketplace.visualstudio.com/items?itemName=jetmartin.bats\u003e\n[github]: \u003chttps://github.com/bats-core/bats-vscode\u003e\n[issues]: \u003chttps://github.com/bats-core/bats-vscode/issues\u003e\n[new issue]: \u003chttps://github.com/bats-core/bats-vscode/issues/new\u003e\n[Changelog]: \u003chttps://github.com/bats-core/bats-vscode/blob/master/CHANGELOG.md\u003e\n[MIT]: \u003chttps://jet-martin.mit-license.org/2017\u003e\n[humanstxt]: \u003chttps://github.com/bats-core/bats-vscode/blob/master/humans.txt\u003e\n\n[bats-core]: \u003chttps://github.com/bats-core/bats-core\u003e\n[bats-assert]: \u003chttps://github.com/bats-core/bats-assert\u003e\n[bats-support]: \u003chttps://github.com/bats-core/bats-support\u003e\n[bats-file]: \u003chttps://github.com/bats-core/bats-file\u003e\n[bats-mock]: \u003chttps://github.com/lox/bats-mock\u003e\n[grayhemp-mock]: \u003chttps://github.com/grayhemp/bats-mock\u003e\n\n[bats-core-l]: \u003chttps://github.com/bats-core/bats-core/releases/latest\u003e\n[bats-assert-l]: \u003chttps://github.com/bats-core/bats-assert/releases/latest\u003e\n[bats-support-l]: \u003chttps://github.com/bats-core/bats-support/releases/latest\u003e\n[bats-file-l]: \u003chttps://github.com/bats-core/bats-file/releases/latest\u003e\n[bats-mock-l]: \u003chttps://github.com/lox/bats-mock/releases/latest\u003e\n\n[badge-core]: \u003chttps://img.shields.io/github/release/bats-core/bats-core.svg?style=flat-square\u0026labelColor=olivedrab\u0026color=grey\u0026label=bats-core\u003e\n[badge-assert]: \u003chttps://img.shields.io/github/package-json/v/bats-core/bats-assert.svg?label=bats-assert\u0026style=flat-square\u0026labelColor=royalblue\u0026color=grey\u003e\n[badge-support]: \u003chttps://img.shields.io/github/package-json/v/bats-core/bats-support.svg?style=flat-square\u0026color=grey\u0026labelColor=sienna\u0026label=bats-support\u003e\n[badge-file]: \u003chttps://img.shields.io/github/package-json/v/bats-core/bats-file.svg?style=flat-square\u0026color=grey\u0026labelColor=indianred\u0026label=bats-file\u003e\n[badge-mock]: \u003chttps://img.shields.io/github/release/lox/bats-mock.svg?style=flat-square\u0026color=grey\u0026labelColor=orchid\u0026label=bats-mock\u003e\n\n[command palette]: \u003chttps://code.visualstudio.com/Docs/editor/codebasics#_command-palette\u003e\n[install extensions]: \u003chttps://code.visualstudio.com/docs/editor/extension-gallery#_install-an-extension\u003e\n[Visual Studio Code]: \u003chttps://code.visualstudio.com/\u003e\n[vscode]: \u003chttps://code.visualstudio.com/\u003e\n[shellcheck]: \u003chttps://shellcheck.net/\u003e\n[vscode-shellcheck]: \u003chttps://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck\u003e\n[sublime-bats]: \u003chttps://github.com/jverdeyen/sublime-bats\u003e\n\n[_art]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_art.png\u003e\n[_bat]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_bat.png\u003e\n[_construction]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_construction.png\u003e\n[_copyright]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_copyright.png\u003e\n[_exclamation]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_exclamation.png\u003e\n[_flashlight]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_flashlight.png\u003e\n[_information_source]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_information_source.png\u003e\n[_negative_squared_cross_mark]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_negative_squared_cross_mark.png\u003e\n[_scissors]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_scissors.png\u003e\n[_scroll]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_scroll.png\u003e\n[_tada]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_tada.png\u003e\n[_white_check_mark]: \u003chttps://cdn.jsdelivr.net/gh/bats-core/bats-vscode/images/_white_check_mark.png\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbats-core%2Fbats-vscode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbats-core%2Fbats-vscode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbats-core%2Fbats-vscode/lists"}