首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在prolog中运行plunit测试

如何在prolog中运行plunit测试
EN

Stack Overflow用户
提问于 2015-11-22 08:01:12
回答 1查看 3K关注 0票数 3

我很难让plunit在最琐碎的情况下执行测试。这是我的装置:

foo.pl

代码语言:javascript
复制
x(5) :- !.
not(x(6)).

foo.plt

代码语言:javascript
复制
:- begin_tests(foo).
test_something(x) :- not(x(5)).

test_seomthing_else(x) :- x(6).
:- end_tests(foo).

这与swipl中所期望的一样工作:

代码语言:javascript
复制
?- [foo].
% foo compiled 0.00 sec, 3 clauses
true.

?- x(5).
true.

?- x(6).
false.

但我似乎不能让foo.plt文件失败

代码语言:javascript
复制
?- load_test_files(foo).
% /tmp/example/foo.plt compiled into plunit 0.00 sec, 4 clauses
true.

?- run_tests.
% PL-Unit: foo  done
% No tests to run
true.

显然,test_something_else测试用例应该失败了,但是plunit的run_tests/0似乎不知道有什么测试要运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-22 10:08:27

来自机组手册

入口点由使用头测试(名称)或测试(名称、选项)的规则定义.

因此,您不需要使用test_something(x)test_something_else(x),而只需使用test(x)

代码语言:javascript
复制
:- begin_tests(foo).
test(x) :- not(x(5)).

test(x) :- x(6).
:- end_tests(foo).

运行这将给出预期的输出:

代码语言:javascript
复制
?- run_tests.
% PL-Unit: foo 
ERROR: [...]
    test x: failed

ERROR: [...]
    test x: failed

 done
% 2 tests failed
% 0 tests passed
false.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33852800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档