Liking cljdoc? Tell your friends :D

Change Log

Unreleased

1.1.0

Released 2024-10-09.

Features

  • Add 4 "interfaces", namespaces of alternative top-level vars to define test suites and test cases: clojure.test, Midje, QUnit, and xUnit. This allows for writing tests in a more comfortable API while still using Lazytest's machinery. See each namespace's docstring for further details.
  • Add popular aliases for lazytest.core vars:
    • describe -> context
    • it -> specify
    • expect -> should

Fixed

  • Change documentation from :lazytest/suite to :lazytest/ns-suite for namespace-defined suites.
  • Clean up reporters checking types instead of :type.

1.0.0

Released 2024-10-03.

Changed

  • Rewrite internals to use nested maps instead of nested sequences and functions. Suites (and :lazytest/runs and :lazytest/nses) have :children, which can be other suites or test cases.
  • Deprecated given in favor of let.

Features

  • Add macros before and after, and support :context in suite metadata. This allows for writing fixture-like code that can be reused across multiple suites or tests:
(defdescribe context-test
  (let [state (volatile! [])]
    (describe "it runs both"
      {:context [(before (vswap! state conj :before))
                 (after (vswap! state conj :after))]}
      (expect-it "temp" true))
    (expect-it "tracks correctly"
      (= [:before :after] @state))))
  • Add the macro around, which works like a clojure.test fixture:
(describe "it works"
  {:context [(around [f]
               (binding [*foo* 100]
                 (f)))]}
  ...)
  • Add macros before-each and after-each, which are run before/after each nested test case.

  • Add function set-ns-context! which sets the current namespace's context to be the given vector. Works like clojure.test/use-fixture.

Changes

  • Changed primary branch from master to main.
  • Disconnected Github fork from original Lazytest repo.

0.5.0

Released 2024-09-20.

Features

  • --watch cli flag will run under "Watch mode", which uses clj-reload to check for changes in local classpath, and then reruns the provided or default test suite. Includes --delay NUM which allows for changing the number of milliseconds between checking changes.

0.4.2

Released 2024-08-28.

  • Target java 11 as unnecessary to target later versions.

0.4.1

Released 2024-08-28.

Changes

  • Merge metadata on defdescribe var into describe attr-map. Fixes --include and --exclude filtering on var metadata instead of attr-map.

0.4.0

Released 2024-08-19.

Features

  • -n, --namespace NS cli flag to specify namespaces that will be tested.
  • -v, --var VAR cli flag to specify vars that will be tested.
  • Support :test metadata on vars. Handles functions, test cases, and test suites, converting them to test suites or using them directly. They're treated in the reporter as test vars, using the defn's var. (See README.md for examples.)

0.3.0

Released 2024-08-08.

Features

  • --exclude and --include cli flags for metadata selection. --include works like ^:focus but is arbitrary metadata.

Changes

  • Added "Usage" to README, listing cli options.
  • Print correct version in --help output.

v0.2.1

Released 2024-06-26.

  • Cleaned up README, added Editor Integration section.

v0.2.0

Released 2024-06-18.

  • Rename test-case-result keys to match clojure.test and other test language's runners:
    • :form -> :expected
    • :result -> :actual
  • Collapse :fail and :error into :fail. If reporters want to differentiate, they can by checking if :thrown is an ExpectationFailed. (See clojure-test reporter for an example.)
  • Add (message, reason) constructor arity to ExpectationFailed to better match both AssertionError and ExceptionInfo.
  • Catch ExpectationFailed in expect, rethrow with updated :message, instead of passing msg into each assert-expr like in clojure.test.
  • Catch other Throwables in expect, wrap in ExpectationFailed as :caught data.
  • Simplify how :messages are tracked.
  • Require a docstring expression from describe, it and expect-it.
  • Add *color* dynamic var (set to lazytest.colorize system env, default to true) and make colorize? rely on it.
  • Move all relevant test case information into result object.
  • Move all relevant suite information into result object.
  • Filter suites/test cases when running a single var.
  • Add support for nubank/matcher-combinators.
  • Sort test vars by line and column before running.
  • Rewrite runner to use type-based multimethod with report hooks.
  • Rewrite reporters to use new report hooks, allow for multiple hooks to be combined:
    • focused prints if there's any focused tests.
    • summary prints "Ran x test cases, N failures, Y errors".
    • results prints failed and errored test cases, expected values, etc.
    • dots prints . for passing test case, and F for failure. Namespaces wrap test cases in parentheses: (..F.) Includes focused, results, and summary.
    • nested prints each suite and test case on a new line, and indents each suite. Includes focused, results, and summary.
    • clojure-test attempts to mimic clojure.test's basic output.
    • debug prints "Running X" and "Done with X" for all test sequences and print the direct result of all test cases.
  • Add tests for reporters.

0.1.0

Released 2024-06-09.

Updated original code to use deps.edn, tools.build, and other modern tooling.

Big changes

  • Remove all maven-specific and leiningen-specific code.
  • Remove clojure.test-like api.
  • Remove random sampling code.
  • Remove dependency-tracking and reloading and autotest code.
  • Remove clojure 1.3 test code examples.
  • Add CLI api.
  • Change external API to use a single namespace (lazytest.core).
  • Change external API macros and functions to work better with modern tooling (use vars, etc).

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close