What is the recommended practice for maintaining test automation code within version control?

We are currently keeping all of our production and staging feature code within SVN but our tests (which are written in Ruby) are currently in Github.

Is it bad practice to store all of our automated test code within a separate version control system or does this not matter? e.g. GitHub for our tests and SVN for our codebase.

  • 1
    What is your context that drove you to reach your question? - As long as you can version control your codes effectively, it does not matter how many version control systems you are using. Or you were asking this question from a managerial point of view? – Yu Zhang Dec 29 '16 at 18:17
  • No, it is not bad practice. If it works for you and your team, what would you call that? – Chris Kenst Dec 31 '16 at 1:32
  • Together is a better way. Copy the subdirectory into the git repo, git add and commit and you're done. This may take as long as 60 seconds ;) Move forward, move on. – Michael Durrant Jan 4 '17 at 21:57

This is completely ok, we did exactly the same for a while. I assume this is for historical reasons (it was in our case)?

But in general, you will try to have the smallest number of systems possible. So for the medium future, it probably makes sense to unify on either SVN or Git(hub) as repository.


It's irrelevant things, while code+tests can form common integrated entity (single repository with all needed content)

You have to have only "good" pair of VCS (where master VCS can handle without any problem slave VCS). In this aspect, Git on Github + SVN is not the best choice (because SVN-part of Github is... well... ugly)


No this is perfectly acceptable. The only time I could see this being a problem is if you were using something like TFS for your codebase and wanted to execute your tests on builds. At this point (as I understand it) you would want your code stored in the same version control system (arguably in the same solution).

  • Welcome. What is TFS? – dzieciou Jan 4 '17 at 21:43
  • 1
    My apologies, TFS stands for Team Foundation Server. TFS is Microsofts version control solution. My answer is for a scenario in which Microsoft software is being used to build and store software. – Isaiah Moran Jan 4 '17 at 23:16

If the software developers’ version control system is available for testers great, but if not, test scripts can be versioned separately.

There are many different free version control tools available. TortoiseSVN, which uses the Subversion (SVN) protocol, is very popular and very easy to use. Setting up a new SVN repository using TortoiseSVN only takes a few minutes.You can set up a SVN repository on a shared network drive, so you don’t need a server (but a server is cool).

Not the answer you're looking for? Browse other questions tagged or ask your own question.