私はTAPプロトコルに従ってテスト結果メッセージを出力する関数を実装するGuileスクリプトを持っています。Guileで単体テストを作成する方法はTAP標準に出力されますか?
3
A
答えて
2
guiletap.scmという名前の次のスクリプトは、テストを実行するときにTAPプロトコルを使用するために頻繁に必要な機能を実装しています。
; Define functions for running Guile-written tests under the TAP protocol. ; Copyright © 2008 by Omer Zak ; Released under the GNU LGPL 2.1 or (at your option) any later version. ;;; ;;; To invoke it: ;;; (use-modules (guiletap)) ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-module (guiletap)) (export plan) (export ok) (export bail_out) (export diag) (export is_ok) (use-modules (ice-9 format)) ; n is the number of tests. (define plan (lambda (n) (display (format "1..~d~%" n)))) ; n - test number ; testdesc - test descriptor ; res - result which is #f at failure, other at success. (define ok (lambda (n testdesc res) (if (not res)(display "not ")) (display (format "ok ~d - ~a~%" n testdesc)))) ; testdesc - test descriptor (define bail_out (lambda (testdesc) (display (format "Bail out! - ~a~%" testdesc)))) ; diagmsg - diagnostic message (define diag (lambda (diagmsg) (display (format "# ~a~%" diagmsg)))) ; n - test number ; testdesc - test descriptor ; expres - expected test result ; actres - actual test result (define is_ok (lambda (n testdesc expres actres) (ok n testdesc (equal? expres actres)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; !!! TODO: ; !!! To be implemented also: ; plan_no_plan ; plan_skip_all [REASON] ; ; is RESULT EXPECTED [NAME] ; isnt RESULT EXPECTED [NAME] ; like RESULT PATTERN [NAME] ; unlike RESULT PATTERN [NAME] ; pass [NAME] ; fail [NAME] ; ; skip CONDITION [REASON] [NB_TESTS=1] ; Specify TODO mode by setting $TODO: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; End of guiletap.scm
2
ggspecはTAPフォーマット(のサブセット)にすることができ、出力結果ガイルユニットテストフレームワーク、今もあります。これを行うには、spec
という名前のプロジェクトのサブディレクトリ内のすべてのテスト(スキーム)のスクリプトを入れて、実行するには:
$ ggspec -f tap
をggspecは、セットアップ、ティアダウン、およびテストスキップして本格的なフレームワークですので、より多くのオプションがあります。プロジェクトに付属のサンプルテストファイル(spec/lib-spec.scm
)を参照してください。
免責事項:ggspecを書きました。
関連する問題
- 1. inkscapeのエクスポートファイルを標準出力に出力する方法と標準入力から読み取る方法
- 2. istream全体を標準出力と文字列に出力する方法
- 3. スウィフトで\ 0を標準出力に出力する方法
- 4. Guileまたは他のSchemeでは、入力ファイルまたは標準入力から行のn番目の空白で区切られたフィールドを標準出力に出力する方法はありますか?
- 5. 標準出力方法
- 6. ビジュアルコンポーネントの単体テストの作成方法
- 7. AngularJSで単体テストとe2eテストを構成する方法は?
- 8. 標準入力と標準出力を.Netでリダイレクトする
- 9. 私のコマンドラインから標準出力をキャッチする方法は?
- 10. 標準入力と出力をBashでリダイレクトする方法
- 11. 単体テストのテストリソースフォルダを手動で作成する方法
- 12. は、出力を標準出力に出力してキャプチャする方法もありますか?
- 13. NSOutputStreamを標準出力にリダイレクトする方法は?
- 14. Python - スーパーバイザは標準出力をログに記録する方法 -
- 15. Linux(GCC)で出力する(標準出力ではない)方法は?
- 16. Dartの単体テストを作成する最良の方法は何ですか?
- 17. pythonのログ出力を標準出力ではなくファイルにリダイレクトする方法はありますか?
- 18. .net標準テストporjectでプライベートオブジェクトをテストする方法は?
- 19. 標準出力と標準エラー出力をUnixリダイレクトを使ってローリングファイルにリダイレクトする方法
- 20. プロセスの標準出力をSLF4Jに送る方法はありますか?
- 21. mpirunはリダイレクトされた標準出力を保持します
- 22. UnittestテストでPython Scriptで標準入力と標準出力をテストするにはどうしたらいいですか?
- 23. PHPの標準出力データをストリームフィルタリングする方法は?
- 24. イベントの単体テストを作成する
- 25. Subprocess.communicateは改行を標準出力に出力します
- 26. apos.schemas.field()によって標準HTML出力をオーバーライドする方法
- 27. Xcodeでライブラリプロジェクトの単体テストを構成する方法は?
- 28. テストケースのレポートを生成する方法は、単体テストになりますか?
- 29. ファイルに標準入力して標準出力に標準出力するにはどうしたらいいですか?
- 30. 出力を標準エラー出力にリダイレクト