]Time-stamp: <05/04/22 15:02:18 noel> SchemeUnit Proposed Changes: 2.0 [DONE] Allow assertions to record arbitrary information about failure. This has already been implemented in 2.0 alpha 1. Breaks compatability with 1.x [DONE] Add setup and teardown actions for test-suites. Maybe via keyword arguments. May break compatability with 1.x [DONE] Update GUI for 208. [DONE] Release as PlaneT modules in addition to Schematics website [DONE] Add require/expose macro, aka glassbox testing. By "Richard C. Cobbe" ;; Requires a module and exposes some of its unprovided (non-syntax!) ;; identifiers. ;; USAGE: (require/expose MODULE-NAME (IDS ...)) ;; where MODULE-NAME is as in the MzScheme manual (i.e., a standard ;; module spec) and IDS are the un-provided identifiers that you wish to ;; expose in the current module. ;; Based on a macro by Raymond Racine (rracine at adelphia dot net) posted to ;; plt-scheme in Dec 2003. (define-syntax require/expose (syntax-rules () [(_ mod (ids ...)) (begin (require mod) (define-values (ids ...) (let ([ns (module->namespace 'mod)]) (parameterize ([current-namespace ns]) (values (namespace-variable-value 'ids)...)))))])) [DONE as far as possible] If possible improve text-ui to display backtraces and additional information [DONE] Add Emacs compatible output from the text-ui [DONE] Miscellaneous additional assertions: - assert-regexp-match - assert-not-false [DONE] Miscellaneous additional macros: - (make-test-suite* suite-name (case-name case-body) ...) to reduce typing for the common case of (make-test-suite suite-name (make-test-case case-name-0 case-body-0) (make-test-case case-name-1 case-body-1)) [DONE] Implement fold-tds, ala SSAX, for test-suites. This will allow more flexible traversal of test suites, and in turn more flexible reporting options [DONE] Fix documentation typos [DONE] Make test/text-ui write not display arguments [DONE Can't see a way of improving this] Better location tracking -- make assertions grab their own location 2.1 Use contracts instead of assertions? Make text-ui output easier to read - display test suite(s) and test case name - simplify output Shorten names Make sure DrScheme's alpha-renaming works with assert macros Short-cuts for common case of a test case that contains only a single assertion. E.g. (test-case String equality-pred expected computed) Return useful value from test/text-ui, so shell scripts can interrogate this value. E.g. return (and (zero? errors) (zero? failures)) Suggested by Eric Hanchow Pete Hopkin's bug report (include it) Port to PLT v299, SISC, Scheme48 and maybe R5RS. Document foldts, run-test, run-test-case, fold-test-results Add contracts for make-test-suite and make-test-case Make text-ui more configurable. In particular support silent mode 2.2 Provide more flexible reporting options: - timing information - log to disk Print ancestor suites on failure in text-ui Alter make-test-suite* to take setup and teardown actions. Improve error handling of setup and teardown actions: - fold-test-results should catch suite setup and teardown failures and halt execution of the subtree. - make-test-case should provide better location information Make tests fail unless they explicitly succeed. This may break compatability. 2.? Additional add-on libraries: - web testing (I have an existing incomplete framework) - WebIt! (ditto) - user contributions Redevelop GUI and/or integrate w/ PLT's tool