Wednesday, January 4, 2017

How to setup Robot Framework on development machine?

Here, I have shared the steps to setup the Robot Framework on a development machine preferrably on MacOSX. 

Steps to setup

  1. Download and install Python from here 
  1. Windows users should target Python v2.7 due to Selenium compatibility while MacOS users can target v2.7 as well as v3.0 or above 
  2. After installation, add it's path in Environment Variables 
  3. Verify it on terminal $ python -V 
  1. Install Robot Framework as instructed here 
  1. Use pip install robotframework as preferred installer on terminal 
  2. Verify it on terminal $ robot --version 
  1. Install Selenium2Library as instructed here 
  1. Use pip install robotframework-selenium2library as preferred installer on terminal 
  2. No dependency related error should remain on terminal while installing this 
  1. Download Geckodriver from here, 
  1. Unzip the package 
  2. Put the executable file at suitable path 
  3. Add that path in Environment Variables 
  4. Verify it on terminal 
geckodriver -b /Applications/ 
  1. Download & install Firefox from here 

How to generate git diff patch?

To understand the process involved in it, we need to first understand the terminologies that is being used in the git.
Suppose you have committed your code in Git repository. Now when you select the particular commit, then you will see something like this
TK-34164 e2e test cases added
Commit: 96f17e85e5b76cff8a6a0332c4f22d10aca3aec6 [96f17e8]
Parents: 56a575c5b8
Author: Abhishek Kumar 
Date: 3 January 2017 at 18:52:06 IST
Labels: HEAD -> feature/TK-34164-configure-robot-framework-into
Here at line #1 is custom message for the commit, after that at line #2 you see a commit-id which is 40 characters long hexadecimal string (SHA-1) and it's short version in square bracket which is 7 characters long. 
SHA-1 (Secure Hash Algorithm 1) produces a 160-bit (20-byte) hash value known as a message digest. A SHA-1 hash value is typically rendered as a hexadecimal number, 40 digits long.
This commit-id is 160-bit SHA-1 hash, uniquely represents the new, post-commit state of the repository. 
Now we need to get the changes of our code, that is known as diff. We can get the diff by using this command.
For single commit
git diff-tree -p {commit} > {filename}
Here, {commit} is a single short commit-id and {filename} is a patch file that could be like patch.diff
For multiple commit
git diff-tree -p {from-commit}..{to-commit} > {filename}
Here, {from-commit}..{to-commit} is a range of short commit-id and {filename} is a patch file that could be like patch.diff
So you need to just replace the portion of string with curly bracket with your specific content.
This way you can generate a patch.diff via git program.
In case you want to merge this patch.diff into the repository, then use the following command
git apply patch.diff
That's it!