My question is mostly related to getting some recommendations around on best practices.

In my organization mostly the developers write the automated tests. Automation test UI /API and regression tests live with the application codebase. Only one master branch.

  1. App Code and test automation code resides on GitHub.
  2. The developer works on an application feature, make changes to the automation script, checks it on GitHub, create a PR and after review merges the code with the master.
  3. Jenkins build kicks-off, runs UI, integration, and UI tests and deploy the code in "Dev"

The problem at hand is when we try to run the tests in regression it breaks because the application changes in "Dev" is not yet available in "TEST" region.

How would you handle this? Would you have a separate repository for automation?

BTW, all automated tests are in Protractor + Jasmine.

1 Answer 1


If I understand the situation correctly, then either (1) you're promoting the test code into master before the production code, or (2) your regression test suite includes tests that are not yet in master.

If 1, change your promotion process so that test code and production code are always promoted together.

If 2, change your regression test process to run tests only from the master branch.

Of course, I don't know the details, so you may have factors that make my advice troublesome.

But I would put a great deal of effort into solving the problem without separating the tests into a separate repository. Putting tests in a separate repository will, I think, increase the cost of keeping the test code and production code compatible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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