RComp is a simple framework for testing command line application output. It works by passing a specified command tests (files) by argument and comparing the result with expected output.
Installation
$ gem install rcomp
Usage
$ rcomp
Tasks:
rcomp generate # Generate expected output for all tests
rcomp help [TASK] # Describe available tasks or one specific task
rcomp init # Setup rcomp test directory
rcomp test # Run all tests
rcomp version # Prints RComp's version information
Setup
In your project root directory, run:
$ rcomp init
Then create some tests in rcomp/tests
Structure
After running rcomp init the following directories are created by default:
.
|--rcomp
|----tests
|----expected
|----results
tests
Stores test files. All subdirectories will be searched for tests.
expected
Stores the expected output of tests. Format is testname.out for stdout and testname.err for stderr.
results
Managed by RComp. Stores the results of your most recent test suite run.
A simple RComp suite might look like:
.
|--rcomp
|----tests
|------test1.test
|------dir
|--------test2.test
|----expected
|------test1.out
|------dir
|--------test2.out
|--------test2.err
Configuration
All custom configuration is stored in .rcomp as YAML
| Setting | Config | Default | Description |
|---|---|---|---|
| command | command: [COMMAND] |
Command RComp will run tests with | |
| directory | directory: [DIRECTORY] |
rcomp |
Directory RComp will store tests, results and expected in |
| ignore |
ignore:
- [PATTERN]
|
List of patterns RComp will ignore when finding tests | |
| timeout | timeout: [TIMEOUT] |
5 |
Test execution time limit (seconds) |
Aliases
| Task | Alias |
|---|---|
test |
t |
generate |
g |
version |
-v--version
|
Copyright
Copyright (c) 2012 Chris Knadler. See LICENSE for details.