diff --git a/Bats-Evaluation-Process.md b/Bats-Evaluation-Process.md index 3063939..6ccb909 100644 --- a/Bats-Evaluation-Process.md +++ b/Bats-Evaluation-Process.md @@ -1,8 +1,8 @@ In order to better understand what you can and can't do outside of `test` blocks, it's important to know how Bats processes test files. Below is a walkthrough by Sam: -First, each test file is preprocessed. This essentially amounts to replacing lines like `@test "first test" {` with `test_first_test() { bats_begin_test "first test";`, i.e. turning each `@test` block into a test function. +1. First, each test file is preprocessed. This essentially amounts to replacing lines like `@test "first test" {` with `test_first_test() { bats_begin_test "first test";`, i.e. turning each `@test` block into a test function. -Then, each test file is executed n+1 times, where n is the number of test cases in the file. +1. Then, each test file is executed n+1 times, where n is the number of test cases in the file. The first run evaluates the file without running any test functions, counting all the test cases in the file. If you invoke bats with `-c`, execution ends here; otherwise, the first run prints out the TAP header `(1..n)`, then iterates over the test cases and executes each one in a new child process.