https://github.com/stepful/cyperful Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} stepful / cyperful Public * Notifications * Fork 0 * Star 79 * Interactive system testing UI for capybara License MIT license 79 stars 0 forks Branches Tags Activity Star Notifications * Code * Issues 1 * Pull requests 0 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights stepful/cyperful This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Last commit Last Name Name message commit date Latest commit History 54 Commits frame-agent frame-agent lib lib www www .eslintrc .eslintrc .gitignore .gitignore .prettierrc .prettierrc .rubocop.yml .rubocop.yml Gemfile Gemfile Gemfile.lock Gemfile.lock LICENSE LICENSE README.md README.md cyperful.gemspec cyperful.gemspec package.json package.json pnpm-lock.yaml pnpm-lock.yaml postcss.config.js postcss.config.js tailwind.config.js tailwind.config.js tsconfig.json tsconfig.json vite-scripts.config.ts vite-scripts.config.ts vite.config.ts vite.config.ts View all files Repository files navigation * README * MIT license Cyperful The Capybara visual debugger Gem Version An addon for Ruby Capybara system tests that adds the great DX of tools like Cypress.io. cyperful-demo.mp4 Features * [*] View the list of steps in a test, with live updates as the test runs * [*] Pause the test at each step and interact with the page * [*] View API requests and console logs between steps * [*] Auto-restart the test when the source code is modified * [*] Records a video of the test so you can preview the finished test at that point in time (experimental) * [ ] View and run ANY test suite from the UI (coming soon) * [ ] Record browser interactions to save as ruby code (coming later) Framework support Cyperful is in BETA and you will likely encounter issues/bugs! I have only confirmed it works on the default Rails 7.0 testing stack: Minitest and Capybara. Please open a Github issue if you'd like to see support for other test frameworks (such as RSpec) or any other specific setups. Installation First, install the gem: bundle add cyperful In your application_system_test_case.rb file, add the following: CYPERFUL = !!ENV["CYPERFUL"] require "cyperful" if CYPERFUL class ApplicationSystemTestCase < ActionDispatch::SystemTestCase include Cyperful::SystemTestHelper if CYPERFUL # ... end Usage Run a test with CYPERFUL env var, e.g.: CYPERFUL=1 rails test test/system/my_test.rb:123 IMPORTANT NOTE: Cyperful currently works best when you run a single test at a time i.e. your test file contains only 1 test OR you specify a single test with :. A better DX for running multiple sequential tests is coming soon. Config Config options: * reload_test_files (default: true) - Reset the test when the test's source code is modified. * auto_run_on_reload (default: true) - Automatically start the test when the source code is modified. Only applies if reload_test_files is true. * history_recording (default: true) - Record a video of the test while it is running for debugging. You can set these options on the Cyperful.config object after requiring the gem, e.g.: Cyperful.config.history_recording = false Development # in a terminal, run the frontend dev server. # this will watch for changes and rebuild the frontend cd cyperful pnpm run dev # in another terminal, run any test. # prepend `CYPERFUL_DEV=1` to tell cyperful to look at the # dev server instead of the prebuilt frontend assets. cd my_test_app CYPERFUL_DEV=1 CYPERFUL=1 rails test test/system/my_test.rb About Interactive system testing UI for capybara Topics rails dx capybara end-to-end-testing minitest system-testing Resources Readme License MIT license Activity Custom properties Stars 79 stars Watchers 1 watching Forks 0 forks Report repository Releases No releases published Languages * TypeScript 66.0% * Ruby 32.3% * Other 1.7% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.