đź’ľ
Cheat Sheet
  • Cheat Sheet
  • Git
    • Initialize a new project
    • Make a new commit
    • Revert the most recent commit
    • Create a new branch
    • Setup terminal prompt to show the current git branch
    • Merge a branch into the current branch
    • Push a new branch up to GitHub (if it doesn’t exist there yet)
    • Pull a new branch from to GitHub to a second computer (if it doesn’t exist there yet)
    • Go back to an older commit and re-work from there
    • Delete a git branch
  • Rails
    • Setup Rails 8 w/ SQLite & Solid Cable, Cache & Queue
    • Stripe Pay Gem
      • Running Stripe Test Mode Locally
    • Setup new Rails app
      • Start a new Rails App (v8)
      • Start a new Rails App (v7)
      • Clone Instrumental Template to a new app
    • Rails 7 Turbo/Hotwire Cheatsheet
    • ActiveStorage with AWS S3
    • Live reloading with webpack-dev-server
    • Sidekiq & Redis
      • Setup Sidekiq in a Rails 8 app
      • Clear sidekiq queue
      • Start jobs worker
    • Setup Solid Queue/Cable/Cache in Rails 8 to share a single database
    • Run rspec tests
      • ZipMessage Tests Commands
      • Can't run rspec tests: ActiveRecord::StatementInvalid: PG::DuplicateTable: ERROR: relation "thing"
    • Acts As Tenant (using Rails console)
    • Reset database & re-run migrations
    • Ultrahook for testing email to app
    • Troubleshooting
      • Manage node versions using NVM
      • Webpacker bugs
      • Tailwind updates not showing
      • Fix orphaned migrations
      • rspec error: session not created: This version of ChromeDriver only supports Chrome version
      • “PG::ConnectionBad” error when running local rails server
        • Postgres not started (PG:ConnectionBad error)
    • OLD
      • Start a new Rails app (v6)
        • Install Tailwind CSS on a Rails Project
        • Install Stimulus.js on Rails
        • Install RSpec, Capybara, FactoryBot
        • Install Devise Masqerade
    • Hosting
      • Hatchbox.io + Digital Ocean
      • Fly.io rails app hosting
      • Render rails app hosting
      • Set up a Rails site on Heroku
        • Fix Sidekiq on Heroku
        • Setup app on Heroku for a Client
    • Edit Rails Credentials
    • Run subdomains on local
  • Misc
    • Terminal shortcuts
    • ngrok for tunneling
    • Set up a new Mac
    • Mailcatcher
  • Statamic
  • Forge / Statamic
    • Run Statamic (for Clarityflow) locally
    • Set up to SSH into Forge server
    • Production deploy failed. Resolve by SSH & resolve git conflicts.
  • Old (not using anymore)
    • Heroku
      • Push to Heroku
        • Can't push to heroku. Updates were rejected because the remote contains work you dont have locally
      • Create a Heroku App from command line
      • Set up remotes for staging and production apps
      • Run the Rails Console on Heroku
      • Migrate database on Heroku
      • Make database backups
      • Restart Heroku Dynos
      • Point a root domain (non-subdomain) to heroku
    • Middleman
      • Start a new middleman site from my template
    • Jekyll
      • Start a new Jekyll site from my template
      • Run and work on my Jekyll site
    • Netlify
      • Setup a Jekyll site on Netlify
      • Push to Staging & Production on Netlify
    • Laravel
      • Start a new Laravel app
      • Setup a Mac for running Laravel
    • Design
      • Icomoon Fonts in Rails
    • Sync Sublime Text settings across macs
    • Run a rails project on a new mac for the first time
    • Customize terminal prompt for bash
  • Cursor
    • .cursorrules for Rails + Linear issue writing
  • Mac Environment
    • Install Homebrew for both arm64 and x86
    • Installing Ruby
    • Customize terminal prompt for zsh to show git branch
    • Open terminal in arm64 or Rosetta mode
    • Install Homebrew
Powered by GitBook
On this page
  1. Rails
  2. Run rspec tests

ZipMessage Tests Commands

When we overhauled and improved our tests suite in October 2022, Aarthi set up the following commands to run our tests.

Brian set up terminal shortcuts on his macs for each of these commands (those are noted below each command for Brian's reference).

Run all tests in parallel + retest failures once

Runs all tests, including all feature tests, using the parellel test run system.

After running all, this command will also re-run the failures, once.

/bin/bash run_specs_parallelly.sh all

Brian's terminal shortcut: zmtests_all

Run all tests except for feature tests

Since feature tests are slower to run and fail more often, we can exclude them and run all of our non-feature tests using this command. Runs in parallel.

/bin/bash run_specs_parallelly.sh non_feature_specs

Brian's terminal shortcut: zmtests_non_features

Run all tests with important tag, except for feature tests

We can narrow down our non-feature tests run only to those with important tag using this command. Runs in parallel.

/bin/bash run_specs_parallelly.sh important_non_feature_specs

Brian's terminal shortcut: zmtests_important_non_features

Run all important tests in parallel

Run all tests with important tag, including both feature and non-feature tests. Runs in parallel.

/bin/bash run_specs_parallelly.sh important

Brian's terminal shortcut: zmtests_important

Run all stripe tests in parallel

Runs all tests related to Stripe, which are those that have the stripe tag. This includes some tests that also have stripe_live, which hits the Stripe API (doesn't use stubs) and uses Stripe Test Mode. Our tests clean up after themselves by deleting Stripe Test mode data after running.

/bin/bash run_specs_parallelly.sh stripe

Brian's terminal shortcut: zmtests_stripe

Run all throttling tests in parallel

These are tests that take extra time to run, so we can test these separately using this:

/bin/bash run_specs_parallelly.sh throttling

Brian's terminal shortcut: zmtests_throttled

Run only feature tests in non-parallel

Runs all feature tests (all tests inside features folder) and runs them in a single process, not in parallel. This is slower to run, but more reliable as feature tests sometimes have failures only when run in parellel.

bundle exec rspec spec/features

Brian's terminal shortcut: zmtests_features

Run only important feature tests in non-parallel

Runs all feature tests that have important tag and runs them in a single process, not in parallel. This is slower to run, but more reliable as feature tests sometimes have failures only when run in parellel.

bundle exec rspec spec/features -t important

Brian's terminal shortcut: zmtests_important_features

PreviousRun rspec testsNextCan't run rspec tests: ActiveRecord::StatementInvalid: PG::DuplicateTable: ERROR: relation "thing"

Last updated 2 years ago