在用 bats 測試時為你的 Bash 程式碼除錯。
當你使用 Bats 執行 Bash track 的測試時,Bats 會同時擷取 STDOUT 和 STDERR,作為輸出斷言的依據。
這在本機搭配 bats 可以運作,但在 Exercism 線上編輯器裡不行。
如果你想在不影響測試結果的情況下印出除錯輸出,就把它寫入檔案描述符(fd)3。
echo 'debug message' >&3
Bats 會在測試執行期間顯示寫入 fd 3 的輸出,但不會把那段輸出納入 assert_output 之類的斷言中。
執行範例:
$ bats hello_world.bats
hello_world.bats
✓ Say Hi!
debug message
1 test, 0 failures
當你在本機執行測試時,這就很實用喔。