In general, it’s a good idea to use some kind of revision control system to keep track of the progression of your automated test projects – that way you can revert to a previous version if you run into trouble.
Additionally using such a version control system is almost essential if you are working as a team on the same test automation project.
Therefore we recommend to use a source versioning system like SVN (which integrates in Ranorex Studio), having the advantages of
- making the history of all changes made to your project visible
- providing backup functionality
- preventing security issues on network shares (source code checked out locally)
to name some of them.
The following paragraphs will explain how to
- set up Ranorex for a better Subversion experience,
- check out a repository to your local drive,
- commit a project to your repository
- and the two different versioning models available with Subversion
Before starting with the Ranorex specific part of this blog post I would recommend to have a look at the book Version Control with Subversion to get a complete overview about version control (and learn things such as how to set up a SVN server).
Setting up Ranorex for a better Subversion experience
Before performing all the subversion specific update/commit stuff, you should adjust the subversion settings as described in Noam Kfirs blog post “Better Ranorex Studio settings for Subversion”.
To do so open the Tools Options dialog and check the option “Automatically add new files” in Subversion Options area
and uncheck the option “Automatically copy/move log files to the project reports directory” in Ranorex Log Viewer area.
In the Subversion Options area at the Tools Options dialog you can also choose the SVN version you are using (1.6 or 1.7).
Checking out a repository to your local drive
Please note that it’s necessary to have access to a SVN-Server and a repository located on this SVN-Server to perform the following steps. Therefore please have a look at the book Version Control with Subversion or contact your system administrator. If you do not want to host your own SVN-Server you can also use a free source code hosting service as listed at this wikipedia article. It’s also possible to create your own repository without the use of a SVN-Server. This can be done using e.g. TortoiseSVN; for a step-by-step description see this blog post.
After making sure that you have access to the repository for your Ranorex test solutions, first of all you have to check out the repository to a local folder (called “working copy”) on your hard drive to put your solutions into it.
Commit a project to your repository
After doing so, generate a new solution into the working copy directory you’ve just made a checkout to.
The generated files have automatically been added to your repository, since you have set the option “Automatically add new files” before.
To commit the changes to your repository simply right-click on your solution file and choose “Commit…” from the context menu.
The basic problem of sharing files is that changes made by one team member might be accidentally overwritten by another as sketched in following figure:
To overcome this issue you can follow two different approaches:
The “Copy-Modify-Merge” approach is the default used by Subversion. As all checked in files are text based files there should be no problems with using the “Copy-Modify-Merge” method. Even the XML-files should be understandable easily. So, in case of a conflict you should be able to determine which differences to accept or to decline.
Of course you can also use the Lock-Modify-Unlock model, if you do not want to merge the files manually.
By following the mentioned steps and looking up unclear topics in the book Version Control with Subversion there should nothing stand in your way using version control with your Ranorex projects.