{"id":13736729,"url":"https://github.com/rstudio/shinytest2","last_synced_at":"2025-05-16T06:02:19.140Z","repository":{"id":37852803,"uuid":"383580925","full_name":"rstudio/shinytest2","owner":"rstudio","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-12T03:12:24.000Z","size":48771,"stargazers_count":110,"open_issues_count":79,"forks_count":22,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-24T06:02:17.552Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://rstudio.github.io/shinytest2/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rstudio.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.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}},"created_at":"2021-07-06T19:41:56.000Z","updated_at":"2025-04-12T18:00:49.000Z","dependencies_parsed_at":"2024-04-29T16:52:54.030Z","dependency_job_id":"2c46b86f-004f-4b57-ae86-0aa281344c6b","html_url":"https://github.com/rstudio/shinytest2","commit_stats":{"total_commits":170,"total_committers":19,"mean_commits":8.947368421052632,"dds":"0.45882352941176474","last_synced_commit":"ffa9e3c33d9e079d204ad070965fc9aa055ec9b4"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fshinytest2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fshinytest2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fshinytest2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rstudio%2Fshinytest2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rstudio","download_url":"https://codeload.github.com/rstudio/shinytest2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478160,"owners_count":22077675,"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","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":[],"created_at":"2024-08-03T03:01:27.421Z","updated_at":"2025-05-16T06:02:19.116Z","avatar_url":"https://github.com/rstudio.png","language":"R","funding_links":[],"categories":["R","Developer Tools"],"sub_categories":["Testing"],"readme":"# shinytest2 \u003ca href=\"https://rstudio.github.io/shinytest2/\"\u003e\u003cimg src=\"man/figures/logo.svg\" align=\"right\" height=\"139\" /\u003e\u003c/a\u003e\n\n\u003c!-- badges: start --\u003e\n[![CRAN status](https://www.r-pkg.org/badges/version/shinytest2)](https://CRAN.R-project.org/package=shinytest2)\n[![R-CMD-check](https://github.com/rstudio/shinytest2/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/rstudio/shinytest2/actions)\n[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)\n[![DOI](https://zenodo.org/badge/383580925.svg)](https://zenodo.org/badge/latestdoi/383580925)\n\u003c!-- badges: end --\u003e\n\nManually testing Shiny applications is often laborious, inconsistent, and doesn’t scale well. Whether you are developing new features, fixing bug(s), or simply upgrading dependencies on a serious app where mistakes have real consequences, it is critical to know when regressions are introduced. `{shinytest2}` provides a streamlined toolkit for unit testing Shiny applications and seamlessly integrates with the popular `{testthat}` framework for unit testing R code.\n\n`{shinytest2}` uses `{chromote}` to render applications in a headless Chrome browser. `{chromote}` allows for a live preview, better debugging tools, and/or simply using modern JavaScript/CSS.\n\nBy simply recording your actions as code and extending them to test the more particular aspects of your application, it will result in fewer bugs and more confidence in future Shiny application development.\n\n\n## Installation\n\n```r\n# Install the released version from CRAN\ninstall.packages(\"shinytest2\")\n\n# Or the development version from GitHub:\n# install.packages(\"devtools\")\ndevtools::install_github(\"rstudio/shinytest2\")\n```\n\n## Usage\n\nThe easiest way to get started is by calling `shinytest2::record_test()` in your app directory. This will open a Shiny application to record your actions as code. To programmatically create a test, call `shinytest2::use_shinytest2_test()`.\n\nCall `shinytest2::use_shinytest2()` to create a initial value test file and set up any other infrastructure you may need.\n\nPlease check out our [Getting Started](https://rstudio.github.io/shinytest2/articles/shinytest2.html) article for example usage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frstudio%2Fshinytest2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frstudio%2Fshinytest2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frstudio%2Fshinytest2/lists"}