Releases: NoahTheDuke/lazytest
Releases · NoahTheDuke/lazytest
v1.4.1
v1.4.0
Added
- Can now pass in paths as cli arguments, not just through repeated
--dir
flags:clojure -M:dev:test test/unit test/integration
will look for tests in bothtest/unit
andtest/integration
. - Documentation in
docs/core.md
and in thelazytest.core
docstring. - Exclude
lazytest.core/defdescribe
from:clojure-lsp/unused-public-var
linter.
Changed
- Removed Malli dependency as it's no longer used.
- Support doc tests where the expected value is a function:
(+ 1 1)
=> int?
is rewritten as (expect (int? (+ 1 1)))
.
- Give
lazytest.core/throws-with-msg?
andlazytest.core/causes-with-msg?
better errors when the class matches but the regex doesn't. - Switch from
:test
metadata to:lazytest/test
metadata. It's longer, but it no longer clashes withclojure.test
's internals so you can run lazytest overclojure.test
tests without them being marked as passing tests. (See #4.) - Clarify
:output
and:reporter
::output
is from the CLI or from a caller of thelazytest.repl
functions, and:reporter
is the function created/referenced from:output
. - Move namespace filtering to
lazytest.filter/filter-tree
and out oflazytest.main
.
Fixed
- cljdoc links in README.md. (See #1.)
v1.3.0
Added
- Add support for Expectations v2 in
lazytest.extensions.expectations
. Only ports overexpect
and related helpers. - Add rudimentary test-doc support, which allows for specifying markdown files to parse and treat as tests for the purposes of test runs.
--md FILE
is how to specify markdown files to parse and treat as Lazytest tests.
v1.2.0
Wrote better documentation for lazytest.core
, highlighting the primary vars and their use cases.
Added generic support for skipping test cases or suites with :skip
metadata.
(describe "many cases"
(it "will be skipped"
{:skip true}
(expect (= 1 2)))
(it "will be ran"
(expect (= 1 1))))
Added
lazytest.runner/run-test-suite
: For running a suite value instead of running a namespace or a var.lazytest.core/update-children
: An intended-for-internal-use function useful in defining suites and test-cases.- Support
:skip
metadata on suites and test-cases.
Changed
lazytest.core/it
andlazytest.core/expect-it
returnnil
if within*context*
.lazytest.experimental.interfaces.midje/fact
no longer wrapsit
in adescribe
.lazytest.core/defdescribe
ignores*context*
, allowing it to be nested.
v1.1.1
Fixed
- Added the
lazytest.core
aliases to the readme. - Added a note about the experimental to the readme.
- Hide some of the helper functions from the docs.
v1.1.0
Features
- Add 4 "interfaces", namespaces of alternative top-level vars to define test suites and test cases:
clojure.test
,Midje
,QUnit
, andxUnit
. 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
.
v1.0.0
Released 2024-10-03
.
Changes
- Rewrite internals to use nested maps instead of nested sequences and functions. Suites (and
:lazytest/run
s and:lazytest/ns
es) have:children
, which can be other suites or test cases. - Deprecated
given
in favor oflet
. - Changed primary branch from
master
tomain
. - Disconnected Github fork from original Lazytest repo.
Features
- Add macros
before
andafter
, 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 aclojure.test
fixture:
(describe "it works"
{:context [(around [f]
(binding [*foo* 100]
(f)))]}
...)
- Add macros
before-each
andafter-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 likeclojure.test/use-fixture
.
v0.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.
v0.4.2
Released 2024-08-28
.
- Target java 11 as unnecessary to target later versions.
v0.4.1
Released 2024-08-28
.
Changes
- Merge metadata on
defdescribe
var intodescribe
attr-map. Fixes--include
and--exclude
filtering on var metadata instead of attr-map.