3

TAP プロトコルに従ってテスト結果メッセージを出力する関数を実装する Guile スクリプトが必要です。

4

2 に答える 2

2

guiletap.scm という名前の次のスクリプトは、テストの実行時に TAP プロトコルを使用するために頻繁に必要となる関数を実装します。

; TAP プロトコルで Guile が作成したテストを実行するための関数を定義します。
; 著作権 © 2008 オマー ザック
; GNU LGPL 2.1 または (オプションで) 以降のバージョンでリリースされています。
;;;
;;; それを呼び出すには:
;;; (use-modules (guiletap))
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;
(define-module (guiletap))
(輸出計画)
(エクスポートOK)
(エクスポート bail_out)
(エクスポート診断)
(エクスポートは_ok)

(use-modules (ice-9 形式))

; n はテストの数です。
(計画を定義する
  (ラムダ (n) (表示 (フォーマット "1..~d~%" n))))

; n - テスト番号
; testdesc - テスト記述子
; res - 失敗の場合は #f 、成功の場合はその他の結果。
(OK と定義する
  (ラムダ (n testdesc res)
    (if (not res)(display "not "))
    (display (format "ok ~d - ~a~%" n testdesc))))

; testdesc - テスト記述子
(bail_out を定義する
  (ラムダ (testdesc)
    (display (format "Bail out! - ~a~%" testdesc))))

; diagmsg - 診断メッセージ
(診断定義
  (ラムダ (diagmsg)
    (表示 (フォーマット "# ~a~%" diagmsg))))

; n - テスト番号
; testdesc - テスト記述子
; expres - 予想されるテスト結果
; actres - 実際のテスト結果
(is_ok を定義
  (ラムダ (n testdesc expres actres)
    (ok n testdesc (equal? expres actres))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;
; !!! TODO:
; !!! 以下も実装予定:
; plan_no_plan
; plan_skip_all [REASON]
;
; [名前] は結果が期待されます
; [名前] は期待される結果ではありません
; いいね 結果パターン [名前]
; 結果パターン [NAME] とは異なります
; [名前] を渡す
; [名前] に失敗
;
; 条件をスキップ [理由] [NB_TESTS=1]
; $TODO を設定して TODO モードを指定します。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;
; guiletap.scm の終わり
于 2008-09-16T13:38:45.763 に答える