2014-09-11 3 views
0

протестировать свой UI Automation на Дженкинс с bwoken, как это:bwoken: Как установить выходной каталог

bwoken test 

Проблема: Результаты теста всегда появляются в различных подпапках, которые соответствуют количеству пробега , Результаты тестов ожидаются в интеграции папок/tmp/results. Но затем они снова появляются в подпапках, таких как «Run 1», «Run 2», ...

На следующем этапе мне нужно проанализировать результаты теста в формате jUnit. Но я не знаю, как получить соответствующий файл, если они всегда находятся в подпапке.

Так вместо того, чтобы мои файлы в «интеграции/TMP/результаты/Run х», я только хочу, новейший - и только самый новый - результат «интеграция/TMP/результаты /»

Любая помощь, как Я мог найти/скопировать соответствующий файл или как сообщить bwoken, где разместить вывод?

ответ

1

Автор bwoken здесь.

В настоящее время Bwoken не предоставляет способ указания выходной папки для тестового прогона. Инструменты сами выбирают имена «Run 1», «Run 2» и т. Д.

В качестве обходного пути я бы предположил, что, возможно, использовал команду, например ls -1tr integration/tmp/results/ | tail -1, чтобы получить последнее измененное имя каталога.

Надеюсь, это поможет!

0

Возможно, вам удастся очистить рабочее пространство перед началом каждой сборки; таким образом, ваши выходные файлы будут иметь предсказуемый путь.

Вы можете использовать этот путь для генерации ваших результатов jUnit и дополнительно сообщить Jenkins об архивировании вывода сборки, результатов jUnit или обоим (чтобы они были перемещены из рабочей области и в каталог результатов для сохранения, перед тем, как следующая сборка стирает рабочее пространство).

Чтобы сделать это, вы могли бы сделать что-то вроде:

  • Включить «Удалить рабочее пространство перед компоновкой начинается» флажок для работы Дженкинс

  • выполнить задание несколько раз, и убедитесь, выходные файлы всегда находятся в integration/tmp/results/Run 1

  • Настройте свой шаг преобразования JUnit для работы на этом пути

  • Чтобы архивировать файлы в конфигурации заданий, нажмите Add post-build action > Archive the artifacts и введите шаблон для архивации файлов, которые вы хотите сохранить. Например: integration/tmp/results/Run 1/*

0

Я не уверен, можно ли удалить сегрегацию (Run 1, Run 2, ...), но есть другие способы, чтобы ваша работа была выполнена. Одним из таких способов было бы скопировать файл из последней папки (например, «Запустить N, где N - это папка с самым высоким номером») в другой каталог.

Это означает, что вам просто нужно найти последний файл из каталогов, у которых есть шаблон «Запустить N» и скопировать его в другое место (в этом случае интеграция/tmp/results/).

Я предполагаю следующее из вашего запроса:
1. То, что вы работаете на Никс поле *
2. То, что это просто один файл готовится к публикации в каждой папке «Run N».

Скажем,

[[email protected] ~]$ ls -ltr 
total 16 
drwxr-xr-x 2 tom tom 4096 Sep 11 22:49 Run 1 
drwxr-xr-x 2 tom tom 4096 Sep 11 22:51 Run 2 
drwxr-xr-x 2 tom tom 4096 Sep 11 22:53 Run 3 
drwxr-xr-x 2 tom tom 4096 Sep 11 22:55 Run 4 
drwxr-xr-x 2 tom tom 4096 Sep 11 22:57 testdir 

Так, только после того, как результаты тестирования публикуются в папке «Run N», вы можете запустить одну гильзу, чтобы принести последнюю версию файла и скопировать его в свою директорию назначения.

cp "$(find . -type f -printf "%[email protected] %Tc %p\n" | grep Run | sort -n | tail -1 | cut -d' ' -f9-)" . 

Вы можете изменить приведенную выше команду в соответствии с вашими требованиями.

Смежные вопросы