> The client doesn't run your unit tests
That's kinda the whole point... you run them to catch bugs and fix them so your clients never see the bugs you caught in the first place.
> but will run you contracts (because contracts deploy with you software while unit tests dont).
So you'd prefer your contracts to blow up your bugs in your clients' faces, rather than catch bugs yourself prior to releasing the code to them?!