Howdy.
Looks like setup and teardown is something we need for the JS tests, and
relatively quickly, per bug 115:
http://windmill.osafoundation.org/trac/ticket/115
This is a problem for Cosmo tests because we need to test different
pieces of the app (e.g., PIM, admin), and run different setup code for
tests in the different pieces (e.g., the JS shortcuts for the UI
elements in the PIM).
Travis suggests something like:
namespace.setup = function () {};
namespace.teardown = function () {};
I think this syntax is fine. It's not quite the same thing as allowing
tests to have dependencies on other tests, but I think it covers the 80%
use case.
It also occurs to me that it might be nice to allow various tests to
share setup code, and allow them to to specify that the code run only
once versus every time.
Perhaps a separate property on the namespace object:
namespace.runSetupCodeOnlyOnce
It would be simple to let the framework keep track of which setup
functions have been executed.
You could of course hack this yourself by manually setting some sort of
property in your setup code, but it's really not a bunch of extra work
to implement the right way.
And alternative would be a different method you could call at the same
time as registerTests/registerTestNamespace that would do a global setup
for a set of tests, something like:
registerTestSuiteSetup
registerTestSuiteTeardown
Either of these would allow you to execute your desired code before your
tests run.
Thoughts?
Matthew