The number and size of your files is within the git ability to save it all as one repo. Even if you pushed them an order or two. Therefore, the real reasons to split them into two repositories or save them in one repo should have been done with ease of use, and not with the technical limits of git.
I like to run tests in the same repo as the ones they test. When I update the code to include new features, I update the unit tests, and it's nice to have synchronization.
When I add code to fix a flaw and add a regression test that has two synchronisms, it’s nice again.
When testing for unit and regression in synchronization with the code, when I check the old revision, I know that all related tests must pass. Any errors that I can attribute to another component of the system (say, changing the OS or tool), which helps me point out such things without interference, to guess which tests might be “expected failures”.
The downside is that if I notice something missing from my unit tests, it's not easy to add it retroactive to where it "should have been." However, I find that there is a smaller flaw, after which there are many errors of “guessing that this might be normal” when you check if the last April code is working with some new subsystem or another.
Your trade-offs may be different. Perhaps your control chain does not provide enough support to add advanced unit tests with new features, so you may have a higher percentage of tests that you want to apply retroactively. You might be better off exporting functionality changes through some readable attribute, and your test suites might just not trigger the expected failures. Perhaps your tests are managed by another group, and then code. Any of them can change the balance.
Stripes
source share