Branching using SIDE Eyes

Eyes supports having multiple versions of a test baseline. Versions of baselines Defines the sequence of images to which the sequence of images captured at checkpoints will be compared. A test can have multiple baselines, each of which is characterized by the execution environment it ran on (operating system, browser and viewport size). A baseline can have instances in multiple branches. are grouped together in baseline branches. A baseline branch corresponds to a software branch, where typically for each software branch you can have independent versions of the test baselines. In this way features that are developed independently but share tests start off initially with the same tests. Then, as new features are added, you add new tests, or change existing tests and update the expected images to reflect the new feature. You can do this independently for each independently developed feature. When a feature is merged into the main branch, the additions and changes in the test baselines can also be merged in the main branch. For more details see The Compare and merge branches page.

SIDE Eyes allows you to declare for each project the branch name and parent branch name. You define these names by clicking in SIDE Eyes icon in the browser toolbar when Selenium IDE is idle (not recording or playing back) and filling in the appropriate fields:

If you run a test and the branch does not exist, then Eyes searches for a matching baseline in the parent branch or the default branch if the parent branch is not specified. The new branch is created and the version of the baselines in the parent branch at that time becomes the initial version of the baselines in the new branch. From that point onwards, updating of baselines in the parent and any children are independent. Baselines in the parent branch can continue to be updated without impacting tests that run against the new branch, and the baseline versions in a child branch may be updated without impacting tests that run against versions of the baseline in other branches. Eventually, baselines in two branches can be merged; the destination branch adopts new test baselines and changes in the steps of existing baselines in the source branch.