I'm facing a very annoying issue with the new Spring 13 release. Now all tests run asynchronously by default. Which would be fine except for the fact that a test locks all records it's using until it finishes (then it rolls back whatever changes it made) and that one of the records being locked is the standard pricebook record.
The standard pricebook record exists by default in the platform (you cannot create it and have to use the @isTest(SeeAllData=true) annotation to work with it in your tests), there's only one instance of it, and is used any time you want to create a product (and then add it to an opportunity or a quote).
Since the tests are running now asynchronously by default, all those that interact with the standard pricebook record fail because all of them are trying to put a lock on it (only the first one to get the lock succeeds).
I'm afraid of what it's going to happen when we deploy new changes to production. Are all tests going to run asynchronously? Since this mayor change has been done with the tests, is there now a way to go around the (very annoying) fact that you cannot insert a standard pricebook? (IsStandard field in Pricebook2 is not createable or updateable.)
Edit: I plan to validate the deployment, this at least should allow me see whether the tests are going to be run asynchronously by default when deploying.