@Override
            public void evaluate() throws Throwable {
                String rtPath = testInfo.test.getValue();
                Integer delay = testInfo.test.getDelay();

                if (delay != null) {
                    try { Thread.sleep(delay); } catch (InterruptedException ignored) { }
                }
                if (rtPath != null && !rtPath.trim().isEmpty()) {
                    String endpoint = testInfo.test.getEndpoint();
                    if (endpoint == null) {
                        endpoint = testInfo.group.getEndpoint();
                    }
                    if (endpoint == null) {
                        endpoint = testInfo.plan.plan.getEndpoint();
                    }
                    if (endpoint != null) {
                        endpoint = resolveEndpoint(endpoint);
                    }
                    if (endpoint == null) {
                        endpoint = gatewayServer.getGatewayEndpoint();
                    }
                    runWithRetries(testInfo, endpoint);
                    gatewayServer.next(endpoint);
                }
            }
@see org.junit.runners.ParentRunner#runChild(java.lang.Object, org.junit.runner.notification.RunNotifier)
gateway/test/src/test/java/io/apiman/gateway/test/junit/GatewayRestTester.java