In some cases it is interesting to bind surefire to multiple execution targets but have it operate on different classpaths.
- Have the same test suite run against multiple JPA providers; EclipseLink and Hibernate
- Arquillian test suite run against Tomcat and Jetty
In these cases you would have the TestCompile scope defined in your normal dependency chain scoped as "test", while you can tell surefire to activate another profile during test.
TestCompile = JPA API
TestRuntime = Hibernate | EclipseLink