ResultStruct: add field getters.
Runner: allow subclasses to override log printing behavior.
test: add tests for the runner.