Test::C2FIT is a direct Perl port of Ward Cunningham's FIT acceptance test framework for Java.
FileRunner.pl input_containing_fit_tests.html test_results.html
perl -MTest::C2FIT -e file_runner input_containing_fit_tests.html test_results.html
perl -MTest::C2FIT -e fit_shell
Great software requires collaboration and communication. Fit is a tool for enhancing collaboration in software development. It's an invaluable way to collaborate on complicated problems - and get them right - early in development.
Fit allows customers, testers, and programmers to learn what their software should do and what it does do. It automatically compares customers' expectations to actual results.
This port of FIT has a featureset equivalent to v1.1 of FIT. Dave W. Smith's original port was based on fit-b021021j and I've updated most of the core to match the 1.1 version.
This port passes the current FIT spec and also implements a all of the examples.
The following functions are provided (and exported) by this module:
Process a FIT-document contained in $infile and writes the result to $outfile.
Same as file_runner, except that not < table >, < tr > and < td > but < wiki >, < table >, < tr > and < td > is searched for in the input document.
Creates an interactive shell from which you can easily run tests. Start it and enter "help" for more information.
Suppose, your tests-related files reside in a directory with three subdirectories: input - where the files come from, output - where the results will be written to and lib - where your fixtures reside, all you need to do is just to enter "runall"
The file_runner and wiki_runner support filtering of warn messages, similar to java's common logging. To change the log level, use the -L parameter, e.g.:
perl -MTest::C2FIT -e file_runner -- -L 1 input_containing_fit_tests.html test_results.html
There are following log levels defined: 0 - trace, 1 - debug, 2 - info, 3 - warn, 4 - error, 5 - fatal.
In your code, simply use warn "message" if it should be printed out unconditionally or warn 1, " message" if it should be printed out, when log level is either TRACE or DEBUG.
In your FIT-documents, please use the java-style dot-notation for qualifying package names. E.g. if you want the package Domain::Object::Simple to be used, specify it by entering Domain.Object.Simple into your fit document.
Package names should be fully qualified, case is importat. Special care is taken on the fit.* packages, these can be specified either by fit.Name as well as Test.C2FIT.Name.