Hey Dominic,
this is a common missunderstanding. Apparat is not generating any coverage information. Instead it only allows the author of a tool to perform a coverage analysis when using a SWF that has been prepared by Apparat. FlexMojos is an example.
When you run the coverage tool Apparat will insert bytecode in the SWF that calls apparat.coverage.Coverage.onSample(file: String, line: int): void.
Imagine you have this code:
file: Test.as
line0: var x: int = 1;
line1: trace(x);
Then Apparat will rewrite this as following:
import apparat.coverage.Coverage
Coverage.onSample('Test.as', 0);
var x: int = 1;
Coverage.onSample('Test.as', 1);
The implementation of the Coverage class is completely up to you. If it does not exist in the ApplicationDomain you will also get a runtime error. To fix this your test runner could either contain the Coverage class or it is already compiled into the SWF -- or you could use Apparat to inject some kind of class.
However in FlexMojos after a test suite completed the coverage data is sent back to the Java code via a socket and then it uses Cobertura to generate a report.
Best,
Joa