То, как вы это сделаете, во многом зависит от того, какой сервер интеграции и IDE вы используете, и какое приложение вы используете. Я предполагаю, что вы используете Eclipse; и я предполагаю, что вы используете Jenkins , поскольку IMO будет проще всего сделать так, как вы хотите.
Большая часть этого будет работать из коробки. Однако есть кое-что, что потребует дополнительной работы.
Вы хотите сделать следующее:
- Создать в Дженкинсе задание, которое называется «Интегрированное тестирование» (имя не имеет значения). Сконфигурируйте его для запуска тестов, которые вы хотите запускать из вашей IDE, и чтобы удаленные машины могли запускать сборки.
- Сделать это задание параметризованным заданием и добавить параметр файла. Предположим, это называется «TestingProgram». Это будет программа, которую задание будет проверять.
- Заставьте задание Integrated Testing использовать файл TestingProgram для запуска тестов. Если вашей программе требуется более одного файла, то предположим, что это будет zip-файл, содержащий все необходимые файлы.
- Сконфигурируйте ваш проект Eclipse для создания тех же файлов, которые ожидают задания Integration Testing (я предполагаю, что это уже происходит, так как предполагается, что он создает какую-то бинарную версию вашей программы)
Теперь перейдем к более сложной части подключения Eclipse к Дженкинсу. К сожалению, я не думаю, что есть какие-либо ранее существующие инструменты, которые будут делать именно то, что вы хотите. Хорошей новостью является то, что это должно быть очень просто сделать с помощью специального скрипта. Все, что нужно сделать сценарию:
- Если в вашей программе требуется несколько файлов, а eclipse еще этого не делает, нужно будет сжать эти файлы до
- Потребуется взять файл и прочитать его в некоторую переменную, а затем закодировать в base64. Есть много библиотек, которые позаботятся о большей части этого для вас, например эта . Предположим, этот файл считан в переменную с именем
$programFile
- Для этого потребуется отправить HTTP-запрос на
http://<your-jenkins-server>:8080/<integrated-testing-job-name>/buildwithparameters?TestingProgram=$programFile
Подробнее о запуске удаленных сборок Jenkins с параметрами вы можете прочитать в документах jenkins .
Сценарий, выполняющий эти шаги, может быть практически любым. Учитывая, что вы хотите в конечном итоге включить его в свою IDE, кажется, что наиболее логичным выбором будет сценарий ant или плагин Eclipse. Ни то, ни другое не будет слишком сложным - сценарий ant будет выполнять эти шаги, и вы можете импортировать сценарий ant в проект Eclipse специально для тестирования - и плагин может просто добавить пункт меню, который при запуске внутри проекта будет выполнять вышеуказанные шаги для этого проекта.
ПРИМЕЧАНИЕ: На самом деле существует несколько различных способов запуска сборки с параметрами с использованием Jenkins. Например, вы можете выполнить запрос POST, использовать json для передачи параметра, как описано в документах jenkins, с которыми я связан, использовать CLI Jenkins и т. Д. Не все из них работают с параметрами файла, но вы должны использовать их все в очень похожим способом - в качестве шага в вашем пользовательском скрипте вы должны выполнить удаленную сборку на Jenkins и передать файл, с которым хотите протестировать. Например, объяснение, которое я дал, предполагает, что файл тестирования очень мал; если это не так, вы можете вместо этого сделать запрос POST. Если вы столкнетесь с проблемами при использовании одного метода, его будет довольно легко переключить на другой метод, который работает лучше.