The importance of environment isolation has already been mentioned in this book many times. By isolating your execution environment on both the application level (virtual environments) and system level (system virtualization), you are able to ensure that your tests run under repeatable conditions. This way, you protect yourself from rare and obscure problems caused by broken dependencies or system interoperability issues.
The best way to allow proper isolation of the test environment is to use good continuous integration systems that support system virtualization or containerization. There are good hosted continuous integration systems such as Travis CI (for Linux and macOS) or AppVeyor (for Windows) that offer such capabilities for open source projects for free. But if you need such a thing for testing proprietary software, it is very likely that you will have to either pay for such a service or host it on your own infrastructure with some existing open source CI tools (such as GitLab CI, Jenkins, or Buildbot).