2016-10-25 5 views
0

В настоящее время, когда создается отчет, он перезаписывает папку отчетов предыдущего запуска. Можно ли указать папку, чтобы иметь временную метку по имени, передав что-то вроде этого?Serenity BDD cucumber - есть ли способ безмятежности, чтобы избежать написания папки отчета?

serenity.outputDirectory = отчеты \ & NOW() в свойствах файла безмятежности ..

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

+0

Использует тесты прочь приложений ограждающие, возможно, Дженкинс? Если это так, вы можете настроить шаг предварительной сборки, чтобы переопределить свойство 'serenity.outputDirectory'. Если нет, я бы написал короткий скрипт, чтобы переопределить его (на основе текущей метки времени) и запустить его сначала в пакетном режиме с помощью тестовой среды. Другая возможность заключается в том, чтобы либо установить свои методы @Before, либо @After, однако это звучит как плохая практика. – JDelorean

+0

Я не использую Дженкинса. JD. Принимая во внимание это, я бы написал короткий скрипт, чтобы переопределить (на основе текущей метки времени) его и запустить его сначала в пакетном режиме с помощью тестовой среды. Мои тесты в формате «Дано», «Далее». поэтому, где вы предлагаете поместить код для переопределения файла serenity.outputDirectory. Также вы можете указать строку кода, которую мы можем использовать для переопределения файла serenity.outputDirectory. – azeem

ответ

0

У меня есть более простое и быстрое решение для вас. Не нужно кодировать. Это то, что вы делаете:

Я использую Windows Command Line/.BAT-файл и Maven для этого.

В ЦМД, создать свою собственную переменную штамп времени, такие как:

set mytimestamp=%date:~10,4%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%%time:~6,2%

затем

echo %mytimestamp%

выход должен быть что-то вроде этого

20162710_122305

Не забудьте указать «/» или «белые пробелы» в вашем формате. Это может привести к неожиданной иерархии папок, что, скорее всего, приведет к сбою сборки.

Чтобы передать это ваш serenity.outputDirectory просто делать (в Maven)

mvn test -Dserenity.outputDirectory=target/site/report_%mytimestamp%

и это то, что вы получите

output folders

* Учтите, что если вы запустите mvn clean он будет вытирать все ваши отчеты. Кроме того, это не навсегда перезаписывает свойство вашего проекта serenity.outputDirectory. Если вы НЕ использовали -Dserenity.outputDirectory=target/site/report_%mytimestamp%, то свойство будет по умолчанию использовать любое значение, имеющееся в вашем проекте.

Это то, что .bat файл будет выглядеть

set mytimestamp=%date:~10,4%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%%time:~6,2% 
call mvn test -Dserenity.outputDirectory=target/site/report_%mytimestamp% 
+0

Большое вам спасибо.он отлично работал :) im, используя gradle, поэтому изменил команду в файле BAT соответственно следующим образом: mytimestamp =% date: ~ 10,4 %% date: ~ 7,2 %% date: ~ 4,2% _% time: ~ 0,2 %% время: ~ 3,2 %% время: ~ 6,2% . \ Gradlew.bat test -Dserenity.outputDirectory = reports/report_% mytimestamp% aggregate – azeem

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