Выполнение теста SoapUI возвращает ошибку «Неверное имя каталога» - PullRequest
1 голос
/ 03 марта 2020

У меня есть установленный конвейер CI, содержащий (до развертывания):

  • Сборка TFS
  • JFrog Artifactory для управления артефактами сборки
  • SoapUI и SpecFlow (BDD & itaretive, параметризованный) для автоматизации функционального тестирования веб-службы

У меня нет доступа к нашим серверам агентов сборки и нет разрешения на установку чего-либо на них. Вместо этого я добавил двоичные файлы SoapUI в качестве ссылок на мой проект функционального тестирования; двоичные файлы извлекаются из системы контроля версий на шаге «Получить источники» каждой сборки.

Это работает нормально, но значительно увеличивает объем моего тестового проекта (и любого другого тестового проекта, для которого потребуется SoapUI), и соответственно, время выполнения сборки: функциональное тестирование будет выполняться только для небольшой части выполненных сборок (только если база кода приложения изменилась или достаточно времени, прошедшего после последней полной сборки и тестирования).

По этим причинам я решил удалить папку двоичных файлов SoapUI из моего тестового проекта и вместо этого развернуть ZIP-архив двоичных файлов SoapUI в хранилище Artifactory. С добавлением шага сценария PowerShell в мое определение сборки я могу по мере необходимости извлекать двоичные файлы SoapUI и извлекать их в нужное место на сервере сборки. Глупо, я думал, что это может быть просто ...

Мне удалось положить sh сжатую папку SoapUI binaries в репозиторий Artifactory, и в моем определении сборки разработки мне удалось правильно написать сценарий Шаг PowerShell для извлечения zip-архива и успешного извлечения его содержимого в ту же папку в каталоге двоичных файлов сборки на сервере агента сборки, в которой он находился изначально.

Однако, когда я выполняю сборку, на шаге там, где выполняются тесты SoapUI, на первой итерации теста я вижу следующую ошибку, возвращаемую в консоль сборки:

System.ComponentModel.Win32Exception: недопустимое имя каталога

Я добавил этап содержимого отфильтрованной папки с помощью скрипта PowerShell перед этапом выполнения теста в обеих сборках Development (новая) и Production (оригинальная) для сравнения. В обоих файлах показан требуемый файл testrunner.bat, находящийся в одной папке на сервере агента сборки . Сам тестовый проект не изменился (за исключением удаления папки с двоичными файлами SoapUI).

Подводя итог: я пытаюсь выполнить тесты SoapUI в двух сборках; в каждой сборке используется один и тот же тестовый проект, и двоичные файлы SoapUI находятся в одном и том же месте, когда начинается выполнение теста. Одна сборка успешно выполняется без проблем. Одна сборка завершается неудачей на этапе выполнения теста, возвращая ошибку «System.ComponentModel.Win32Exception: имя каталога недопустимо».

Я очень озадачен этим; идеи и мудрость SoapUI приветствуются. Спасибо за поиск.

1 Ответ

0 голосов
/ 09 марта 2020

Оказалось, что между строками testrunner.bat между сборками было расхождение; «_», где «-» должен был быть

...