| Faker | Faker is a port of Ruby Faker library to the clojure programming language. It is useful when you want to generate fake but good-looking data, such as in test scenarios or staging servers. |
| Dibble | Inferential database seeding in Clojure |
| Stereotype | A fixtures library for setting up test data in Clojure |
| Simulant | Simulant is a library and schema for developing simulation-based tests. |
| Lazytest | Lazytest aims to be a generic library that can support many different modes and styles of testing. It defines a few generic representations for executable tests (see "Lazytest Internals", below). Any testing code that can be compiled into these representations can take advantage of Lazytest's running and reporting tools. |
| Ring-Mock | Ring-Mock is a library for creating Ring request maps for testing purposes. |
| test-this | Powerful test runner for clojure test-this allows you to run your clojure.test tests easily. Some of the features are: * Fine-grained selection of which namespaces and test functions to run * Automatically reload modified files * No changes to source code needed, use all your clojure.test tests with all its features (including proper handling of fixtures) * Extensible * Easy to use. |
| ClojureCheck | ClojureCheck is an addon for clojure.test. It adds property based testing to clojure.test following the lines of [QuickCheck][qc] for Haskell. |
| expectations | expectations is a minimalist's testing framework * simply require expectations and your tests will be run on JVM shutdown. * what you are testing is inferred from the expected and actual types * stacktraces are trimmed of clojure library lines and java.lang lines * focused error & failure messages |
| Shrink | An implementation of shrinking, for use in finding the simplest possible failure case in generative test failures. Based off of Haskell's QuickCheck, and Scala's ScalaCheck Say you have found a test case that fails for the inputted value of 4. The shrink function will return a sequence of integers, [0 2 -2 3 -3], that you can try as inputs to that failing test case. The aim being to identify the smallest possible failure case, which you will then report to the user. |
| test.generative | Test data generation and execution harness. |
| peano | The goal of this project is to make it as easy as possible to construct test data, including hierarchical data with constraints on how datum X can be used with datum Y. |
| data.generators | Generators for random Clojure data. |
| zombie | A Clojure framework for declarative semantic data transformation. Sometimes during testing, concrete values don't matter. All that matters is semantics. Capture the essence of your test cases with zombie. |
| cljunit | JUnit test integration for Clojure. The purpose of cljunit is to provide a convenient way to write JUnit tests that test Clojure namespaces. This is very useful if, for example, you want to test Clojure code within a Java IDE like Eclipse that has integrated JUnit testing facilities. |
| replay | Instant test suites from repl transcripts! |
| Midje ★ | Midje is a test framework for Clojure. I created it to support top-down as well as bottom-up testing, to encourage readable tests, to provide a smooth migration path from clojure.test, to support a balance between abstraction and concreteness |
| ClojureGiven | ClojureGiven is a port of Jim Weirich's rspec-given BDD test framework to Clojure. ClojureGiven is implemented on top of clojure.test through a set of macros that provide a basic Given/When/Then notation. |
| speclj | A TDD/BDD framework for Clojure, based on RSpec. |
| stories | Freeform BDD lib for Clojure |
| clj-webdriver ★ | This is a Clojure library for driving a web browser using Selenium-WebDriver as the backend. Credits to mikitebeka/webdriver-clj for the initial code for this project and many of the low-level wrappers around the WebDriver API. |
| kerodon | kerodon is an interaction and testing library for ring html based apps. It is intented to look like the interaction a user would have. It is inspired by capybara. |
| touchstone | A Clojure split-testing library Split-testing is great for conversion optimization. We should all be doing more of it. But traditional A/B tests can be a nuisance to setup and monitor. Touchstone is an attempt to bring dead-simple split-testing to any Clojure web application. It uses multi-armed bandit techniques to provide fast, accurate, low-maintenance conversion optimization. |
| bestcase | Bestcase is an A/B and multivariate testing library for Clojure. |
| clj-bandit | A simple Clojure library for multi-armed bandit optimisation. Algorithms are implemented following "Bandit Algorithms for Website Optimization" by John Myles White. |