Very interesting. Yet this raises a lot of questions:
1. IMO a very big problem with database unit testing is its sheer slowness:
How does an SP call
EXEC dbo.TestEquals 1.5, @MyVar
perform compared to an inline expression such as
SELECT CASE WHEN 1.5 = @MyVar THEN ... ELSE ... END
2. I see that 11 tests ran for 1 second. How much of that was setup/teardown? What time would it typically take to run 1000 tests?
3. When you cannot rollback, have you considered restoring from a snapshot:
4. To separate production code from test, have you considered moving test code to a separate schema and or separate database?