-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Yaxunit #94
Yaxunit #94
Conversation
Спасибо большое, погляжу |
@nixel2007 Не получилось посмотреть? 😊 |
Только из отпуска вышел. Обязательно доберусь на днях. |
vars/pipeline1C.groovy
Outdated
expression { config.stageFlags.yaxunit } | ||
} | ||
steps { | ||
timeout(time: config.timeoutOptions.smoke, unit: TimeUnit.MINUTES) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
вот тут должно быть .yaxunit
@kuzja086 планируешь доделать? я бы воспользовался По п.2 лично я поддерживаю твое решение грузить расширение прямо в стейдже, потому что сейчас подключенное расширение YAXUnit может приводить к ошибкам при "обычной" работе, соответственно, оно может мешать bdd и дымовым тестам. Думаю, что надо поддержать в библиотеке самый "правильный" способ, когда исходники тестов лежат в том же репозитории, что и основная конфигурация, поэтому надо добавить для стейджа 2 параметра:
Такой набор параметров не покрывает только тот случай, когда тесты хранятся в отдельном репозитории, но мне кажется, что это крайне неудобно и так никто не делает. @nixel2007 есть мысли? |
@ovcharenko-di Да, планирую закончить. Сейчас жду обратной связи от @nixel2007 😊 Есть идеи как быть с путем к отчету junit? На мой взгляд лучше доработать Yaxunit, чтобы через параметры запуска можно было переопределять его. Может еще варианты есть ? |
@kuzja086 по поводу пути к отчету junit: я считаю, что в библиотеке путь к отчету junit можно просто захардкодить, как это сделано сейчас для шагов bdd и smokeTest. Тогда ожидается, что пользователь библиотеки сам предоставит конфиг, в котором будет указан именно этот путь. Также считаю, что генерить конфиг в библиотеке не надо, пусть его предоставляет пользователь, но надо предусмотреть разумный конфиг по умолчанию. |
@kuzja086 я в твоем форке создал PR! |
* add params * rewrite and add params * fix options merge * fix command * switch to ArrayList * fix junit reports * fix yaxunit config * fix yaxunit config * fix yaxunit config paths * add allure * fix allure * fix public * fix static * copy allure * publish options * schema upd
@nixel2007 мы готовы)) |
@nixel2007 вот теперь точно готовы) |
for (extCommand in extCommandsWithSettings) { | ||
VRunner.exec(extCommand, true) | ||
} | ||
VRunner.exec(runTestsCommand, true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
вот эту команду я специально оставил отдельно, т.к. потом вокруг нее надо будет coverage start и coverage stop делать (в экспериментальной ветке уже сделано и работает)
} | ||
|
||
// Команда компиляции в cfe | ||
def compileExtCommand = "$vrunnerPath compileexttocfe --src ./src/cfe/$extension --out build/out/${extension}.cfe" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
кажется, путь src/cfe захардкожен. не надо ли его разрешать относительно srcDir в конфиге?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
или в списке расширений в конфиге хранить не список имен, а пары имя,путь
|
||
// Готовим конфиг для yaxunit | ||
String yaxunitConfigPath = options.configPath | ||
File yaxunitConfigFile = new File("$env.WORKSPACE/$yaxunitConfigPath") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Запретный new File
def defaultYaxunitConfig = steps.libraryResource DEFAULT_YAXUNIT_CONFIGURATION_RESOURCE | ||
yaxunitConfigFile.write defaultYaxunitConfig | ||
} | ||
def yaxunitConfig = yaxunitConfigFile.getCanonicalPath() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
canonicalPath тоже рухнет
File yaxunitConfigFile = new File("$env.WORKSPACE/$yaxunitConfigPath") | ||
if (!steps.fileExists(yaxunitConfigPath)) { | ||
def defaultYaxunitConfig = steps.libraryResource DEFAULT_YAXUNIT_CONFIGURATION_RESOURCE | ||
yaxunitConfigFile.write defaultYaxunitConfig |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
я не уверен, что на это всегда будут права. тем более от File. скорее всего надо переписать на steps.writeFile
vars/pipeline1C.groovy
Outdated
@@ -219,6 +219,23 @@ void call() { | |||
} | |||
} | |||
} | |||
|
|||
stage('Юнит тесты') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю таки переименовать в Yaxunit здесь и в описании конфига
@nixel2007 посмотри, плз вроде все отработал, получилось даже избавиться от одного параметра в конфиге |
Superseded by #114 |
#89 Пока черновой вариант, все топорно и костыльно. Хочу сверить концепцию и уточнить некоторые моменты.
Пока остановился на том, что тесты запускаются и отображаются в панельке junit в jenkins на моей машине=) . Дальше буду рефакторить.
Как лучше?
Пока решил остановится на варианте, что конфиг надо собрать динамически, но почему-то не получается сохранить файл, выдает ошибки (нет файла, нет параметров, нет прав) ЧТЯДНТ? Поэтому пока захардкодил конфиг с агентом под виндой. И, как я понимаю, если так делать, то лучше вынести работу с конфигом в отдельный класс?