We are having a set of selenium UI tests for our application. We are deploying the application in our test machines in our QA environment. We are using TFS 2015 for continuous integration and deployment.I am building the selenium test scripts using Maven and creating the JAR file in build definition. Now should I copy this JAR file to the QA environment and run the tests from there. Or should I run the tests from build server only pointing the URL to QA application. 
Where to run automation UI Tests - Build server or Test machine
continuous integration;automation;test automation
Typically a build machine is meant for build, compile + unit tests.  There should be no external dependencies.Usually, UI automation happens as a post deployment step after the package has been built and deployed to an environment.  So, the Selenium scripts should be executed after the code package has been deployed.One could run them on your build server, but then your build server needs to look like your environment.  Sometimes building and deploying on same machine can cause problems, so best practice is to separate them.