flow
a pp6 implementation of prove with the ability to adapt to newer methods of testing
flow
is intended to be an extensible prove
replacement written entirely in perl6
. it's written in a way that it can be configured to use any new testing methods (think: a harness designed for parallel testing, like mocha
). can't prove do this? kind of, you can run your tests through whatever you'd like as long as they end up in a TAP output and it will work with prove
.
with flow
, there isn't any need to translate your test files into TAP as long as there is a ::Plugin
available for how you write your tests.
current state
flow
ships with only parsing TAP
output, there are other testing harnesses out there but they're not widely used if at all.
flow
is being released in the environment to try and help test the TAP output parsing and provide a speedier alternative to plain prove
(prove -j9
is faster on my system for modules with very few tests/scripts but prove
isn't commonly run this way by package installers)
flow
vs prove
Here is the benchmark for Bailador
module - chosen since it has a medium level of testing -
Script
# !/usr/bin/env perl6
use Bench;
my $b = Bench.new;
$b.cmpthese(500, {
prove => sub {
qx<prove -j9 -e 'perl6 -Ilib' t/>;
},
flow => sub {
qx<perl6 -I../../p6-flow/lib ../../p6-flow/bin/flow test>;
}
});
Benchmark
tonyo@mbp:~/projects/benchmark/Bailador$ ./prove-vs-flow.pl6
Benchmark:
Timing 500 iterations of flow, prove...
flow: 1728.3408 wallclock secs @ 0.2893/s (n=500)
prove: 3006.5033 wallclock secs @ 0.1663/s (n=500)
O-------O--------O-------O------O
| | s/iter | prove | flow |
O=======O========O=======O======O
| prove | 6.01 | -- | -43% |
| flow | 3.46 | 74% | -- |
---------------------------------
what is being worked on now
- interface changes
- having the tests stream live results instead of just the end result
- more configuration options
usage
Current directory:
flow test
Some other directory or directories:
flow test [<dir>]
installation
zef install flow
or
panda install flow
license
WTFPL