We do one-to-one test assemblies (C#). For each assembly in a solution, we have a corresponding test project. Each project has a test for each class in the corresponding project.
For example:
Company.Product.Feature
ClassnameAlpha
ClassnameBeta
ClassnameDelta
Company.Product.Feature.UnitTests
ClassnameAlphaTests
ClassnameBetaTests
ClassnameDeltaTests
I take what xando does a bit further. Instead of using the default Debug/Release configurations, I have a configuration for each of the branches that we use for build configurations in Team Foundation Server. So, I have Development, Integration, and Production. Without getting into mind-numbingly boring specifics, the unit tests are built for the Development and Integration configurations. They are included in the Production branch, but not compiled with the build. The reason that they are included is for when we have to branch off of Production (a hotfix, for example) the unit tests can be ran, modified, and reverse-integrated with the modified code.
We currently only have a small subset of the team using this right now, as we are in the process of migrating from a legacy product and version control system, but so far it works well. The unit testing aspect of it works especially well, so far.