kaocha

Official support channel: https://clojureverse.org/c/projects/kaocha
2021-03-25T09:22:26.020300Z

Ok, so backing up a bit my direct use case is refactoring large test suites that take a long time to run. We have several test suites with various focus-meta / skip-meta’s defined, and I’d like to know what tests are going to be executed in each suite (or execution of the cli with focus opts etc), without actually running them all. So an abbreviated output of the plan, that showed the order of execution and the nesting of namespaces / test vars. Also it’s possible in complex suites to have overlapping tests, such an output would be useful to identify the overlap and potentially the cause

2021-03-25T09:32:32.020500Z

starter for 10 on a humanized output format that might be useful:

2021-03-25T09:32:52.020700Z

--- unit (clojure.test) ---------------------------
csv2rdf.metadata.properties-test ^:foo ^:bar 
  child-test ^:baz
  set-table-group-parent-references-test
  children-test
  
csv2rdf.metadata.inherited-test ^:foo ^:baz
  null-value-test ^:bar
    string
    array
    array with invalid values
    invalid type

csv2rdf.http-test
  parse-link-header-test
    Valid header URI only
    Valid header with parameters
    Invalid URI
    Malformed

2021-03-25T09:34:59.020900Z

i.e. similar to the document output just missing testing blocks as printing those will mean executing the tests. Could also be useful to augment ns’s and vars with their metadata keys… though we might want to elide standard clojure metadata e.g. ^:doc / ^:line etc.

2021-03-25T09:37:15.021200Z

Yes IIRC the issue is that dispatch macros are essentially reader macros and only implementable by clojure/edn, i.e. in clojure and edn you can’t extend the reader itself; only tags. ' is a reader macro for vars… others include things like { for sets etc. AFAIK ' isn’t included in the edn subset of clj.

1👍