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のモジュールに関するドキュメントを参照してください。