Dave Makalsky has developed a testing framework (in the Extreme programming style) using agents to store test cases that must be run at testing time.
I have tried it out on a simple example.
Etester has the nice feature that you can test a single class at a time, a few classes that interact with each other (called an inter class test), a whole cluster (consisting of all the unit tests), and a system consisting of a set of clusters.
The tests from the lower level can be percolated up, so that in one run you can execute all the available tests at all levels.
The test cases can be set up either (a) to check that a routine does what the contract calls for, or (b) to check that the contract fails in exceptional cases (using a rescue clause in the test case).
Note: if you run the test in the IDE, you will have to step through the contract violations. The best is to run it from the W_code directory using a script. For example in windows my script in a file test.bat is
cd C:\eiffel5_projects\Etester\EIFGEN\W_code\ etester