       (cond
         (= "--help" arg)
         (assoc opts :help true)
+
+        (= "--list" arg)
+        (assoc opts :list true)
 
         (str/starts-with? arg "--test=")
         (let [test-arg (subs arg 7)

                         (contains? test-var-syms (symbol ns name))))))
         )))

(defn execute-cli [{:keys [test-syms help] :as opts}]
  (let [test-env
        (-> (ct/empty-env)
            ;; can't think of a proper way to let CLI specify custom reporter?


    (cond
      help
      (do (println "Usage:")
          (println "  --list (list known test names)")
          (println "  --test=<ns-to-test>,<fqn-symbol-to-test> (run test for namespace or single var, separated by comma)"))

      list
      (doseq [[ns ns-info]
              (->> (env/get-tests)
                   (sort-by first))]
        (println "Namespace:" ns)
        (doseq [var (:vars ns-info)
                :let [m (meta var)]]
          (println (str "  " (:ns m) "/" (:name m))))
        (println "---------------------------------"))

      (seq test-syms)
      (let [test-vars (find-matching-test-vars test-syms)]
