Task Summary
The runner discovers the operators that implement the trait, configures each from its schema, runs it through the engine and through its generated script, and compares. An operator that cannot be run is reported as a row with the reason rather than passed over, since an operator missing from the report is a fact the report has to carry.
OperatorBehaviorSpec is what turns that into tests: one per operator per configuration its schema offers, named so a single operator can be run alone.
Nineteenth of the twenty-one steps listed in #8325. It reads the generator trait, so it needs #8327, and its assertions name operators the family steps carry, so it comes after them rather than before.
Task Summary
The runner discovers the operators that implement the trait, configures each from its schema, runs it through the engine and through its generated script, and compares. An operator that cannot be run is reported as a row with the reason rather than passed over, since an operator missing from the report is a fact the report has to carry.
OperatorBehaviorSpecis what turns that into tests: one per operator per configuration its schema offers, named so a single operator can be run alone.Nineteenth of the twenty-one steps listed in #8325. It reads the generator trait, so it needs #8327, and its assertions name operators the family steps carry, so it comes after them rather than before.