CodeView
Back to article:
prod
tests
integration
reference-output
Ko
resources
test-clones
xml
custom-file
default-file
dist-file
special
tools
Base
Ko
unit
Integration test readme ======================= Essentially, just run KoHarnessTest with PHPUnit. But here is the fine print. ## How the test operates The integration test 1. runs the test harness against a dummy test class 2. captures the output 3. compares it to a reference file. This is repeated for all combinations of test harness switches, and for a set of XML configurations. To make the comparison work consistently, output is normalized. Information about memory usage, execution time and system specifics like the PHP version is represented by placeholders. ## Limitations - The integration test uses the @dataProvider annotation. Ie, it requires at least PHPUnit 3.2 to run. - Older versions of PHPUnit can be tested as well, though, by 1. creating a new set of reference files on the target system (see below) 2. verifing that these files are identical to the original ones. ## When to regenerate the reference files If the test harness is modified in a way that alters the output, the integration test will fail. For intentional changes, the reference files must be updated: 1. Move the original reference-output folder to a different location. 2. Regenerate the reference files. Do it by running /tools/Ko/tasks/ko\_create\_reference\_files.php. 3. Verify that both sets of files differ only where they should. ## Tools Tools for creating test output and for debugging are in the /tools/Ko/tasks directory. Their names should be self-explanatory. The /special directory contains a setup for triggering a fatal error during test execution. This is not an automated test - the output must be inspected manually.