cl-quickcheck

2020-06-10

Common Lisp port of the QuickCheck unit test framework

Upstream URL

github.com/mcandre/cl-quickcheck

Author

Andrew Pennebaker <andrew.pennebaker@gmail.com>

License

MIT
README

cl-quickcheck - a Common Lisp port of the QuickCheck unit test framework

EXAMPLE

$ clisp example.lisp
Starting tests with seed #S(RANDOM-STATE #*1111111000010000101001011100110101100110011101010000110100110111)
...
ERROR (ISNT MONEY= (DOLLARS 'M) (FRANCS M))

=: M is not a number

  with values #S(MONEY :AMOUNT M :CURRENCY USD) #S(MONEY :AMOUNT -2 :CURRENCY FRANC)
  for ((M -2))
  100/100 counterexamples.
FAIL (IS MONEY= (DOLLARS M) (DOLLARS N))
  with values #S(MONEY :AMOUNT 11 :CURRENCY USD) #S(MONEY :AMOUNT -19 :CURRENCY USD)
  for ((M 11) (N -19))
  98/100 counterexamples.
  0 cases checked and passed in 100 attempts.
95 tests submitted; 2 FAILED.

See example.lisp for more information.

INSTALL

$ clisp
> (ql:quickload 'cl-quickcheck)

REQUIREMENTS

Optional

DEVELOPMENT

Testing

Ensure the example script works as expected:

$ bundle
$ cucumber
Feature: Run example tests

  Scenario: Running example tests            # features/run_example_tests.feature:3
    Given the program has finished           # features/step_definitions/steps.rb:1
    Then the output is correct for each test # features/step_definitions/steps.rb:5

1 scenario (1 passed)
2 steps (2 passed)
0m4.913s

Guard can automatically run testing when the code changes:

$ bundle
$ guard -G Guardfile-cucumber
...

Linting

Keep the code tidy:

$ npm install
$ rake lint
...

Dependencies (0)

    Dependents (3)

    • burgled-batteries
    • json-streams
    • test-utils
    • GitHub
    • Quicklisp