我想要一個Guile腳本,它實現了根據TAP協議輸出測試結果消息的函數。如何在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. 如何運行在Guile中編寫的TAP ::線束測試?
- 2. 丟棄標準輸出下測試程序/標準錯誤,但保留單元測試輸出
- 3. 打印到標準輸出的單元測試順序
- 4. 如何寫單元測試的輸出?
- 5. Java,Junit - 捕獲單元測試中使用的標準輸入/輸出
- 6. 如何構建單元測試
- 7. 如何單元測試構建腳本?
- 8. 單元測試標籤輸出
- 9. TAP ::線束perl測試tee輸出
- 10. 單元測試構建
- 11. perl TAP測試:如何從TAP :: Formatter :: HTML輸出中獲得失敗測試的計數?
- 12. 單元測試Swagger輸出
- 13. 單元測試Swagger輸出
- 14. 從測試用例輸出中分離出JUnit標準輸出
- 15. 單元測試輸出和項目結構建議--- CMake + Google測試框架
- 16. 如何爲單元測試創建內存中圖標
- 17. pdb/ipdb如何處理調試標準輸入/標準輸出
- 18. 單元測試嘲諷標準
- 19. 單元測試.NET標準1.6庫
- 20. 單元測試標準::地圖
- 21. Laravel 5.3使用php單元測試構建單元測試
- 22. 如何單元測試結構構造
- 23. 單元測試建議 - 如何單元測試您的.asmx
- 24. 如何在Silverlight單元測試框架中記錄輸出?
- 25. 如何在Python中生成html單元測試輸出?
- 26. 如何在Django單元測試中輸出完全差異?
- 27. 如何在Jenkins中保持單元測試輸出
- 28. 如何在Android單元測試中打開控制檯輸出?
- 29. 如何在構建之後抑制「測試」窗口的輸出?
- 30. 檢測UITableView單元格中的Tap&Hold