[racket-dev] Racktest was: OMG the thread that will never die about testing
Here's a proposal that attempts to synthesise prior discussion. It
support the features I want without imposing overhead on Eli.
;; Base Types
(define-type (Dict Key Value)
(U (HashTable Key Value) (Listof (Pair Key Value))))
(define-type Name (Listof Symbol))
(define-type Info (Dict Symbol Any))
;; Test Results
(struct: Test-Info ([name : Name] [info : Info] [result: Test-Result]))
(define-type Test-Result (U success failure))
(struct: Success ())
;; Skipped and Pending are a subtype of Success -- report it if you support it
(struct: Skipped Success ())
(struct: Pending Success ())
(struct: Failure ([exn : (U exn #f)]))
;; An error is a failure that occurred outside a testing construct --
report it if you support it
(struct: Error Failure ())
N.