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 的模块文档。