These matters are discussed in more detail elsewhere, but it suffices to recognize that most operational objections are easily overcome. Almost all OO tests need a semi-invasive technique that may introduce its own kind of problems to the testing process. When you run your application tests this way there is the risk that, because the application is not really the same one that you are going to be shipping to customers, you can't really be sure that you've really tested the same software the customer gets. Neither of these kinds of test outcome helps builds confidence in the application's quality if they occur often. Typically, one must link the application to the special Xt library.
Separate builds introduce another source of potential error.
If the testers' program misses a required feature, the test will succeed incorrectly, but that feature will never have been tried.