在 Raku 軌道上的測試

了解如何在 Exercism 上測試你的 Raku 練習


執行所有測試

有一個副檔名為.rakutest的 Raku 指令稿,會用來測試你的解法。 你可以使用以下指令執行測試:

prove6

在你開始練習之前,輸出結果大概會像這樣:

# Failed test 'Say Hi!'
# at t/hello-world.rakutest line 6
# expected: "Hello, World!"
#  matcher: 'infix:<eq>'
#      got: "Goodbye, Mars!"
# You failed 1 test of 1
t/hello-world.rakutest ... Dubious, test returned 1
Failed 1/1 subtests

你需要修改lib/目錄裡副檔名為.rakumod的模組,並寫出能通過測試的解法。 測試通過之後,上面那個指令的輸出結果大概會像這樣:

t/hello-world.rakutest ... ok
All tests successful.

第一次失敗後就停止

如果你設定了RAKU_TEST_DIE_ON_FAIL環境變數,測試執行器就會在第一次失敗後停止。例如:

在 Linux / OS X 上:

export RAKU_TEST_DIE_ON_FAIL=1
# now all the follow up runs will stop at the first failure
prove6
# until we do
unset RAKU_TEST_DIE_ON_FAIL
# or you can use it for one run like this:
RAKU_TEST_DIE_ON_FAIL=1 prove6

或者在 Windows 上:

SET RAKU_TEST_DIE_ON_FAIL=1
REM now all the follow up runs will stop at the first failure
prove6
REM until we do
set RAKU_TEST_DIE_ON_FAIL=

更多資訊請參閱 Raku 文件中的測試章節。

疑難排解

===SORRY!===
Could not find JSON::Fast

Raku 軌道裡用到的所有模組都隨 Rakudo Star 一起提供。 如果你在嘗試執行測試時出現像上面那樣的錯誤訊息,那麼你要嘛確認自己用的是最新版的 Rakudo Star,要嘛用套件管理器自行安裝這個模組。 安裝模組的相關資訊請參閱 Raku 的模組文件。