Prolog 轨道上的测试

了解如何在 Exercism 上测试你的 Prolog 练习


SWI Prolog 既可以交互式运行,也可以直接在命令行执行。

命令行

可以用下面的命令在命令行运行测试:

swipl -f <exercise>.pl -s <exercise>_tests.plt -g run_tests,halt -t 'halt(1)'

把<exercise>替换成你正在实现的练习的名称。

交互式

要交互式运行 prolog,先运行:

swipl

prolog 控制台启动后,加载你的实现并运行测试:

?- ["<exercise>.pl"].
?- ["<exercise>_tests.plt"].
?- run_tests.

把<exercise>替换成你正在实现的练习的名称。

重新加载改动

上面的文件加载完成后,运行下面的命令即可应用你做的任何改动:

?- make.

跳过的测试

刚开始做一道练习时,只有第一个测试会运行。其余的测试都通过在 test 目标里加上 condition(pending) 被跳过了。 第一个测试通过后,把 condition(pending) 里的 pending 改成 true,即可取消跳过下一个测试。 对每个测试重复这一步骤,直到所有测试都能运行并通过。

命令行

在命令末尾加上 -- --all 参数,就能同时运行所有待处理的测试:

swipl -f <exercise>.pl -s <exercise>_tests.plt -g run_tests,halt -t 'halt(1)' -- --all