Testing plays a critical role in helping developers improve the overall quality of software products. It helps you locate and fix defects before they make their way into production. Thorough software testing enhances code quality and encourages engineers to adhere to...
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.
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.
Versioning models
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 “Lock-Modify-Unlock”-approach:
The “Copy-Modify-Merge”-approach:
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.
Related Posts:
6 Strategies To Manage Your Agile Testing Life Cycle
Discover six strategies for managing your agile testing life cycle, including CI/CD, test automation, TDD, collaboration, flexible planning, and metrics
What Is Regression Testing? | Comprehensive Guide
Dive into the world of regression testing and explore techniques, best practices, and the role of test automation tools in the process.
Simplifying Your Testing Process With Codeless Automation
Codeless tools have seeped in through all the pores of digital product development; Wix and Squarespace have introduced significant changes to the way non-dev or even non-tech users can get involved in digital product development cycles.