This updates the runner logic so that it can be intentionally
subclassed with extra behavior, much like the suite and view. This
also adds a default runner implementation. This is prep work for
doing Parassert - it will define a custom runner that will run
tests in parallel.
The base runner has all the structured run procedures and handling.
Custom runners must define a run! method which should yield tests
to run to the given block. They can also define callbacks for extra
custom behavior.
This also updates the runner to call all of its own callbacks and
all of the suite's callbacks in addition to the view callbacks. This
fully implements the callback system between all of the objects.
This updates the runner logic so that it can be intentionally subclassed with extra behavior, much like the suite and view. This also adds a default runner implementation. This is prep work for doing Parassert - it will define a custom runner that will run tests in parallel.
The base runner has all the structured run procedures and handling. Custom runners must define a
run!
method which should yield tests to run to the given block. They can also define callbacks for extra custom behavior.This also updates the runner to call all of its own callbacks and all of the suite's callbacks in addition to the view callbacks. This fully implements the callback system between all of the objects.
@jcredding ready for review.