Я работаю над целью Ant для запуска тестов, и мне нужно, чтобы сервер приложений был запущен и запущен до запуска тестов. Я использую задачу waitFor
для проверки связи с URL, пока он не получит ответ. Это работает, за исключением того, что мне нужно не только убедиться, что URL-адрес просто доступен, но и проверить, присутствует ли конкретная строка состояния. Это второе требование простое само по себе, с задачей get
или telnet
, за которой следует поиск по подстроке. Но задача waitfor не принимает никаких вложенных элементов, кроме стандартных условий Ant, или вещей, которые они могут переносить (вещи, которые возвращают логические значения). Я попытался загрузить URL-адрес как ресурс перед запуском задачи waitfor с условием resourceconatins
, но он кэширует ответ и не обновляется с сервера.
Есть ли способ заставить URL-адрес загружаться в каждом цикле? Или каким-то другим способом добиться этого?
Вот что я хочу достичь в псевдокоде:
<waitfor>
<and>
<!-- make sure the URL is accessible at all -->
<http url="theurl.jsp"/>
<!-- load the URL as a resource and make sure it contains a substring -->
<!-- moving the "url" task before the waitfor works if all conditions are met the first time through, but does not refresh the URL if it has to loop over again. having it inside like this, fails because waitfor/and don't support nexted "url" tasks -->
<url id="url.resource" url="url.jsp"/>
<resourcecontains refid="url.resource" substring="status"/>
</and>
<!-- else, keep on trying until timeout -->
</waitfor>
<!-- continue on to the tests to be run -->