Skip to contents

Check cassette names

Usage

check_cassette_names(
  pattern = "test-",
  behavior = "stop",
  allowed_duplicates = NULL
)

Arguments

pattern

(character) regex pattern for file paths to check. this is done inside of tests/testthat/. default: "test-"

behavior

(character) "stop" (default) or "warning". if "warning", we use immediate.=TRUE so the warning happens at the top of your tests rather than you seeing it after tests have run (as would happen by default)

allowed_duplicates

(character) cassette names that can be duplicated

Details

Cassette names:

  • Should be meaningful so that it is obvious to you what test/function they relate to. Meaningful names are important so that you can quickly determine to what test file or test block a cassette belongs. Note that vcr cannot check that your cassette names are meaningful.

  • Should not be duplicated. Duplicated cassette names would lead to a test using the wrong cassette.

  • Should not have spaces. Spaces can lead to problems in using file paths.

  • Should not include a file extension. vcr handles file extensions for the user.

  • Should not have illegal characters that can lead to problems in using file paths: /, ?, <, >, \, :, *, |, and \"

  • Should not have control characters, e.g., \n

  • Should not have just dots, e.g., . or ..

  • Should not have Windows reserved words, e.g., com1

  • Should not have trailing dots

  • Should not be longer than 255 characters

vcr::check_cassette_names() is meant to be run during your tests, from a helper-*.R file inside the tests/testthat directory. It only checks that cassette names are not duplicated. Note that if you do need to have duplicated cassette names you can do so by using the allowed_duplicates parameter in check_cassette_names(). A helper function check_cassette_names() runs inside insert_cassette() that checks that cassettes do not have: spaces, file extensions, unaccepted characters (slashes).