Most of that you can do directly through the API. The ssisUnit.dll assembly has a TestSuite class, that you can call to directly execute a test (that's how I unit test the ssisUnit code itself). That gives you access to the TestStatistics object, which lets
you get the Failed and Passed counts. That's also where I'm going to add a collection of the messages, so that they don't have to be trapped thru events.
An item to be aware of (you may have already seen this) - there's an implicit assert for every test that validates whether the task completed successfully. So you have to count an extra assert for that one.
Some sample code for using the API:
SsisTestSuite target = new SsisTestSuite("YourTest.ssisUnit");
catch (Exception ex)
//Check to see if test passed
//Check to see if asserts passed
//Check to see if any asserts failed