Personally, I've always put unit tests in a separate project just because that's how MSTest seems to be set up. But I'm reading Refactoring: Improving the Design of Existing Code by Martin Fowler and he seems to be advocating not only putting them in the same project, but also putting them in the same class as the method they're testing.
I'm really honestly having trouble thinking of ways this is different from having the tests in a separate area from the code itself other than philosophical differences (are tests documentation or clutter?).
Are there any clearcut reasons to choose one over another? Or is this mainly a philosophical difference?
UPDATE: I'm not necessarily convinced yet one way or another, but at least I have an idea what the arguments are. I wish I could select everybody's answer, but I had to select just one.