Skip to content

REPLtest: Copy-paste your REPL interactions, and have them run as tests

License

Notifications You must be signed in to change notification settings

SuzanneSoy/repltest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status, Coverage Status, Build Stats, Online Documentation, Maintained as of 2018.

REPLtest

This package provides the #lang repltest meta-language, which can be used to turn the transcript of an interactive racket session into a series of tests.

Installation

Install this package with:

raco pkg install --deps search-auto repltest

Usage

Write a file using the repltest meta-language, containing definitions at the top and interactions after the first prompt (by default the prompt is "> ", I will add customization options later). Each prompt is followed by a single expression and by the expected result.

#lang debug repltest typed/racket
;; There is a problem if there is a comment before a prompt, as comments
;; are not gobbled-up by the preceding read. This will be fixed in a
;; later version.
(define x 0)
(define y 1)
'displayed
(displayln "displayed too")

> (+ 1 1)
- : Integer [more precisely: Positive-Index]
2
> x
- : Integer [more precisely: Zero]
0
> (values x y)
- : (values Integer Integer) [more precisely: (Values Zero One)]
0
1
> #R(+ 2 0)
(+ 2 0) = 2
- : Integer [more precisely: Positive-Byte]
2

When the test submodule of this file is executed (e.g. with raco test file.rkt), repltest runs the expression after each > prompt, and checks the expected result is produced.

About

REPLtest: Copy-paste your REPL interactions, and have them run as tests

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages