2016-10-19 6 views
1

В настоящее время я пытаюсь запустить iisexpress во время сборки приложения, чтобы выполнить интеграционные тесты. Однако скрипт блокируется в start /wait iisexpress /path:%APPVEYOR_BUILD_FOLDER% /port:%iis_port%. Мои навыки написания сценариев не так хороши, как я надеялся, и Google пока не был дружелюбен. Вот заинтересованный немного ниже сценария:Как запустить iisexpress в фоновом режиме, не блокируя скрипт?

cd \Program Files\IIS Express 

start /wait iisexpress /path:%APPVEYOR_BUILD_FOLDER% /port:%iis_port% 

echo "Start operations" 

Здесь захват, где скрипт блокирует

http://www.iamnguele.com/img/stackoverflow_iisexpress_issue.png

Любая помощь приветствуется.

ответ

0

Я нашел, в чем проблема, на самом деле мне нужно было добавить параметр -PassThru, чтобы процесс работал в фоновом режиме.

Вот мой обновленный код:

cd \Program Files\IIS Express 

start /wait iisexpress /path:%APPVEYOR_BUILD_FOLDER% /port:%iis_port% -PassThru 

echo "Start operations" 

И новый результат:

enter image description here

0

Я думаю, что вам нужно удалить /wait, поскольку он блокирует сборку трубопровода, ожидая остановки iisexpress, но никто не остановит его.

Обратите внимание, что в AppVeyor вы всегда можете устранить этот тип проблем с помощью RDP connection to build worker.

Спасибо,

Ilya.

+0

Дело в том, что я стараюсь иметь iisexpress работать, пока я не могу сделать несколько звонков и убить его позже, не блокируя фон. – IamNguele

+0

Есть ли какая-то конкретная причина, чтобы убить его позже? AppVeyor создает новую виртуальную машину для каждой сборки и убивает всю виртуальную машину после сборки, поэтому ваш процесс iisexpress не сохранится долгое время :) – ilyaf

+0

Я хочу запустить некоторые интеграционные тесты, поэтому мне все еще нужно iisexpress, чтобы не блокировать процесс ^^ Если я не нужно убивать, все становится проще – IamNguele