- Adds
file:lineCLI argument syntax for running a single spec by line number (e.g.lein spec spec/foo_spec.clj:42). The line walks upward until it hits an enclosingit,context, ordescribe; if none is found, all specs in the file run. - Spec args union together — a bare directory runs everything under it, so a
file:linethat falls inside a bare directory arg is ignored (the directory already asks for everything). - Adds
--focus/-Fto bypass other spec args (including--defaultfallbacks fromlein specorbb spec) and run only the given dir/file/file:linetargets. Repeatable: multiple-Fargs combine under the same union/prune rules as positional specs. - Renames the internal
--default-spec-dirsflag to--default(the-Dshort form is unchanged). - Line targets override any
focus-it/focus-describemarkers in the targeted file, and an unresolved target warns + exits non-zero.
- Spec failures and pending markers now report the user's source line under Babashka and ClojureScript. Previously they showed
sci/lang/Var.clj:NNN(bb) or acljs.core.jsframe (cljs). - Adds a
bb spec-alltask that runs the spec suite on Babashka, Clojure JVM, and ClojureScript and aggregates failures.
- Idiomatic exit for Babashka platform.
- Fixes bug where the standard runner reloads source files. This breaks cloverage runs.
- Focus priority is given to children. For example, when you use focus-it, a parent focus-context or focus-describe will be ignored.
- Add
-s/--sourcesoption- Specifies which directories to refresh when using the Vigilant runner (defaults to
src). - Potentially breaking, as this will reload all files in the
srcdirectory unless the option is specified.
- Specifies which directories to refresh when using the Vigilant runner (defaults to
- Upgrades dependencies
- Add
-Pand--profileoption to show execution time for each test- Displays execution time next to each test in the documentation reporter
- Allow Speclj arguments to be passed in through Cloverage
- Adds support for Babashka
- Displays the total number of assertions made in the test results
- Replaces
SpecFailureandSpecPendingclasses withex-info - Replaces
mmargslibrary with a Clojure implementation - Adds support for Clojure CLR
- Upgrades dependencies
- Removes clojure/java.data dependency
- migrates from deprecated make-fresh library to clojure.tools.namespace
- fixes bug where changes to src files in a directory that includes a space char does not register updates to the vigilant runner
- can now be built and executed under
:advancedClojureScript optimizations- exports functions needed by JavaScript
- refactors functions that would otherwise fail with
:advancedoptimizations - extends
run-specsto accepts string keys in addition to keyword keys - exports
speclj.run.standard.arm()function to JavaScript (synonym forspeclj.run.standard.armed = true) - exports
speclj.run.standard.disarm()function to JavaScript (synonym forspeclj.run.standard.armed = false) Runnercan nowget-descriptionsRunnercan nowfilter-descriptionsbased on a hash-map of string/boolean namespace pairs{"speclj.core" true "speclj.reporting" false"}
- fixes bug where
should-throwwould expand string predicates improperly under cljs whitespace optimizations. - fixes
should<,should<=,should>,should>=, and other macros to only evaluate forms once. - upgrades to clojure 1.11.3
- upgrades to clojurescript 1.11.132
- adds cloverage support
- 3.4.4 was a failed deploy... no compiled java code.
- fixes bug where
itblocks were not executing within the namespace where they were declared.
- redefs-around
- should-have-count
- should-not-have-count
- stub/clear!
- fix Leiningen plugin
- focus - run only the specs that have focus and ignore all others
- focus-it
- focus-context
- focus-describe
- should>
- should>=
- should<
- should<=
- should-start-with
- should-end-with
- should-not-start-with
- should-not-end-with
- upgrade to clojure 1.11.1
- upgrade to clojurescript 1.11.4
- clojurescript specs run on headless chrome
- upgrade to clojure 1.8.0
- upgrade clojurescript to 1.8.40
- .cljc support by @eyelidlessness #150
- better platform support by @eyelidlessness #152
- fixes reader conditionals in require form
- Uses Clojure 1.7 (RC2) with reader conditionals
- upgrade to clojurescript 0.0.3308
- dev - no more cljx or cljsbuild
- Can ommit pending specs from output by @arlandism - #125
- should-throw allow arbitrary exception validation by @tjarvstrand - #132
- merge pull request by @ryankinderman - #129
- cljs specs catch Strings thrown as exception - #122
- fixes (run-spec) error in cljs - #89
- upgrade dependencies: clojurescript 0.0-3030, cljsbuild 1.0.5, cljx 0.6.0
- Add
around-all@ryankinderman #86 - Allow
--specljas alternative help option @arlandism #103 - Allow
lein spec --helpin lein 2.4+ - Support alternate test-paths (besides
spec) more fully. #101 - Avoid using
load-filefor versioning. #87 - Avoid the dreaded
ClassNotFoundException: speclj.componentsin the REPL. #79 - Make stubs work in multithreaded or lazy situations @finn1317 #114
- upgrade to clojure 1.6
- upgrade clojurescript to 0.0-2234 and cljsbuild to 1.0.3
- should-throw matches regex. @TakaGoto #95
lein specno longer hangs when exiting if agents were used. @sdegutis #94- Fix for inproper exit-code on spec failures. @CraZySacX #90
- Rerun all tests by pressing in vigilant runner. @kevinbuch #41
- remove cljs? debug message. @kevinbuch #84
- Fixes 'ClassNotFoundException speclj.run.standard' when running Vigilant.
- Fixes exception throwing so that correct line numbers are displayed
- CLJS upgrade to 2173
- Resolves CLJS warning: "WARNING: Use of undeclared Var" when
withused
- Merges CLJ and CLJS into one jar using CLJX (specljs is no more)
lein spectasks defaults to:eval-in :subprocessrather than:eval-in leiningen
- adds
:*and fn matchers to stub invokation checking
- vigilant runner prints load error stacktraces
- Adds stubs
- Faster lein task. @mylesmegyesi #67
- clojure-test reporter. @alpian
- can use reporter objects as well as names. @alpian #69
- reverts back to speclj.SpecFailure for errors.
- lein spec task uses :test-paths project setting to specify spec location
- Removes check for java.lang.Object when installing SpecCompoenent, because it blocks multimethods
- Only call exit on fail. @glenjamin #47
- Diff for maps. @edtsech #53
- Fix for localized specs. @nilnor
- -no-color switch. @dudymas #64
- Remove (format) to work in recent cljs. @philipsdoctor #66
- CLJS upgrade to 0.0-1978
- should-contain and should-not-contain gracefully handle nil containers
- ???
- Adds speclj.core/run-spec as speclj.run.standard/run-spec (clj only) for backward compatibility
- Adds should-be, such that (should-be empty? [1 2 3]) offers a useful report
- Adds should-not-be, such that (should-not-be empty? []) offers a useful report
- Simplifies failure report syntax
- Specljs no longer adds keys to js/Object
- Speclj doesn't leave orphaned sub process when the main process crashes @trptcolin
- Speclj flushes output @trptcolin
- speclj.core requires used name spaced for convenience.
- Fixes problem with vigilant runner
- Refactored to accomodate multiple platform (cljs)
- BREAKING-CHANGE: (run-specs) moved from speclj.core to speclj.run.standard
- Specljs (speclj on ClojureScript)
- Java src is compiles with 1.5 target instead of 1.7 (which was used in 2.6.0)
- Uses Clojure 1.5.1
- Added with! and with-all!. Courtesy of @spadin.
- Compile errors are caught and reported. Courtesy of @glenjamin. #39
- should-contain and should== converted to pure macro so that line numbers are accurate. #42
- failures result from java.lang.AssertionError to be compatible with 3rd party assertion libraries. #43
- auto runner should no longer barf on compile errors. #33
- removed 'lein new speclj' task. Instead use 'lein new speclj '. #23
- should== for loose equality and collection containment equality
- should-not== opposite of should==
- should-contain works with regular expressions, maps, and sequences
- should-not-contain, opposite of should-contain
- Adds leinigen task help/doc string.
- Vars (helpers fns and such) can be delcared inside contexts. Good suggestion by @mylesmegyesi.
- Standard runner clears descriptions after each run.
- Includes lein template by @bcmcgavin to create new speclj projects. #23
- Updates 'lein spec' task by @mylesmegyesi to be compatible with lein2 deprecations. #24
- Running specs in the REPL doesnt accumulate results any longer.
- Support for Leiningen 2
- Throwables are now caught by vigilant runner when loading files. Errors used to fail silently.
- Errors (as opposed to Exceptions) no longer abort test runs
- 2.1.0 is broken for some reason
- Vigilant runner will remember failing tests and rerun them until they pass
- leiningen spec task will always run in project root
- tags in the command line work again
- before-all's can use values from with-all's
- Works with Clojure 1.4.0
- Does NOT work with Clojure 1.3 dues to bug: http://dev.clojure.org/jira/browse/CLJ-876
- Improved stacktrace eliding for pagages starting with clojure./java./speclj.
- Multiple reporters supported
- new assertions: should-be-nil, should-not-be-nil (Thanks to pgr0ss)
- made reporting functional resuable
- added pending macro to mark characteristics as pending
- empty characteristics are now considered pending
- xit is a shortcut to mark a characteristic as pending
- added shortcuts for runners and reporters
- renamed specdoc to documentation
- output improved
- with-all spec component
- tag examples. declared in describe blocks. filtered on run.
- exclude hidden files in runs (#4)
- using raw Runtime.exec in 'lein spec' command to avoid ant's output mangling and lag.
- should-be-same or some assertion that checks object reference equality
- allow runners to run files, not just directories
- options for (run-specs)
- fix file path displayed with failed spec
- refactored Vigilant running to use fresh library (embedded locally)
- around components now execute around befores and afters
- removed AOT compilation of clojure src which caused problems on other versions of clojure
- fixed typo that prevented src from properly reloaded by Vigilant Runner
- spec files are sorted before running
- stack traces are elided and a switch was added to output full stack traces
- fixed problem where vigilant runner would crash with :reload or :verbose in ns
- colorize output
- standard runner won't evaluate specs until they're all loaded
withcomponents are only bound within their context- nested describe/context
afters are invoked even after failures or errors- should= support for doubles (use delta)
- Lazy seqs print nicely in output (trptcolin)
- First release