我想要一个 Guile 脚本,它实现功能,根据 TAP 协议输出测试结果消息。
Omer Zak
问问题
854 次
2 回答
3
现在还有ggspec,一个 Guile 单元测试框架,可以输出 TAP 格式的(一个子集)结果。为此,请将所有测试(方案)脚本放在名为spec
并运行的项目子目录中:
$ ggspec -f tap
由于 ggspec 是一个成熟的框架,具有设置、拆卸和测试跳过功能,因此有更多选择。请参阅项目附带的示例测试文件 ( spec/lib-spec.scm
) 以获得良好的概述。
免责声明:我写了 ggspec。
于 2014-02-17T18:13:39.903 回答
2
以下名为 guiletap.scm 的脚本实现了在运行测试时使用 TAP 协议时经常需要的功能。
; 定义用于在 TAP 协议下运行 Guile 编写的测试的函数。 ; 版权所有 © 2008 Omer Zak ; 在 GNU LGPL 2.1 或(由您选择)任何更高版本下发布。 ;;; ;;; 要调用它: ;;; (使用模块(guiletap)) ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; (定义模块(guiletap)) (出口计划) (出口正常) (出口纾困) (出口诊断) (导出is_ok) (使用模块(ice-9 格式)) ; n 是测试次数。 (定义计划 (lambda (n) (显示 (格式 "1..~d~%" n)))) ; n - 测试编号 ; testdesc - 测试描述符 ; res - 失败时为 #f 的结果,成功时为其他结果。 (定义好 (lambda (n testdesc res) (if (not res)(显示 "not ")) (显示 (格式 "ok ~d - ~a~%" n testdesc)))) ; testdesc - 测试描述符 (定义 bail_out (lambda (testdesc) (display (format "Bail out! - ~a~%" testdesc))) ; diagmsg - 诊断消息 (定义诊断 (λ(诊断) (显示(格式“#~a~%”diagmsg))) ; n - 测试编号 ; testdesc - 测试描述符 ; 表达 - 预期的测试结果 ; actres - 实际测试结果 (定义 is_ok (lambda(n testdesc 表达actres) (ok n testdesc (equal?expres actres)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; ; !!!去做: ; !!!还要实施: ; plan_no_plan ; plan_skip_all [原因] ; ; 是预期结果 [名称] ; 不是预期结果[名称] ; 喜欢结果模式[名称] ; 与结果模式 [名称] 不同 ; 通过[姓名] ; 失败[姓名] ; ; 跳过条件 [原因] [NB_TESTS=1] ; 通过设置 $TODO 指定 TODO 模式: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; ; guiletap.scm 结束
于 2008-09-16T13:38:45.763 回答