Staging - Test multiple microservice versions together I been trying to search for answer for this question but so far I didn't found anything useful.

Our problem is that we have 2 microservices with many staging branches, each of these microservices are on different servers and environments.
We want to test each microservices branch with each other in our staging environment so microservice1-branch20 with microservice2-branch10.
They need to communicate two-way so they both need to know that they only can contact with that version of the microservice.

Is there any good way to do these tests without putting them together in one docker container?
Yes, this can be done by Service Discovery. The product family you're looking for is of products such as Consul. You should have the container services report their identities and versions when they load. Report their version and ip (for example), and have the tests run against these values.

This will require some effort with installations and scripting, and has a learning curve - but this is the way to go.