#selenium-webdriver #gradle #cucumber #build.gradle #build-automation
#selenium-webdriver #gradle #cucumber #build.gradle #автоматизация сборки
Вопрос:
Я выполняю сценарии тестирования автоматизации Cucumber через gradle, хотя я могу успешно выполнить тест, но отчеты не генерируются. Я попробовал использовать приведенные ниже задачи gradle по одной за раз.
Задачи Cucumber gradle скопированы ниже
a) для приведенной ниже задачи gradle я могу выполнять сценарии, которые не генерируют отчеты, поскольку я не включил инструкции reports в аргументы
task cucumber() {
dependsOn assemble, testClasses
doLast {
javaexec {
main = "io.cucumber.core.cli.Main"
classpath = configurations.cucumberRuntime sourceSets.main.output sourceSets.test.output
args = ['--plugin', 'pretty',
'--glue','com.hal.brands.test.stepdefinition',
'src/test/resources','src/main/java',
'--tags', '@Api'
]
}
}
}
б) Я попытался включить несколько инструкций, связанных с отчетностью, как показано в приведенной ниже задаче gradle, но это не удалось с исключением
task cucumber() {
dependsOn assemble, testClasses
doLast {
javaexec {
main = "io.cucumber.core.cli.Main"
classpath = configurations.cucumberRuntime sourceSets.main.output sourceSets.test.output
args = ['--plugin', 'pretty', 'json:target/HalBrands.json', 'com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:',
'--monochrome', 'true',
'--features','srctestresourcesfeaturefile',
'--glue','com.hal.brands.test.stepdefinition',
'src/test/resources','src/main/java',
'--tags', '@Api'
]
}
}
}
Подробности об исключении приведены ниже
BUILD SUCCESSFUL in 1s
6 actionable tasks: 6 up-to-date
E:GradleProj_workspaceGadleDemoProj>gradle cucumber
> Configure project :
http://api-qa.dpr-prv.halbrands.us.cloudappzero.azureflash.com
E:GradleProj_workspaceGadleDemoProj
> Task :cucumber FAILED
Exception in thread "main" java.lang.IllegalArgumentException: com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter: is not valid. Try URI[:LINE]*
at io.cucumber.core.model.FeatureWithLines.parse(FeatureWithLines.java:56)
at io.cucumber.core.options.RuntimeOptionsParser.parse(RuntimeOptionsParser.java:131)
at io.cucumber.core.options.CommandlineOptionsParser.parse(CommandlineOptionsParser.java:25)
at io.cucumber.core.options.CommandlineOptionsParser.parse(CommandlineOptionsParser.java:29)
at io.cucumber.core.cli.Main.run(Main.java:29)
at io.cucumber.core.cli.Main.main(Main.java:14)
Caused by: java.lang.IllegalArgumentException: Expected scheme-specific part at index 68: com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:
at java.net.URI.create(URI.java:852)
at io.cucumber.core.model.FeaturePath.parseProbableURI(FeaturePath.java:72)
at io.cucumber.core.model.FeaturePath.parse(FeaturePath.java:57)
at io.cucumber.core.model.FeatureWithLines.parseFeaturePath(FeatureWithLines.java:77)
at io.cucumber.core.model.FeatureWithLines.parse(FeatureWithLines.java:53)
... 5 more
Caused by: java.net.URISyntaxException: Expected scheme-specific part at index 68: com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:
at java.net.URI$Parser.fail(URI.java:2848)
at java.net.URI$Parser.failExpecting(URI.java:2854)
at java.net.URI$Parser.parse(URI.java:3057)
at java.net.URI.<init>(URI.java:588)
at java.net.URI.create(URI.java:850)
... 9 more
FAILURE: Build failed with an exception.
* Where:
Build file 'E:GradleProj_workspaceGadleDemoProjbuild.gradle' line: 104
* What went wrong:
Execution failed for task ':cucumber'.
> Process 'command 'C:Program FilesJavajdk1.8.0_202binjava.exe'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 1s
6 actionable tasks: 1 executed, 5 up-to-date
E:GradleProj_workspaceGadleDemoProj>
**---------------------------------------------------------------------------------------------------------------**
Я не уверен, где я ошибаюсь в вышеупомянутой задаче gradle ‘b’. Пожалуйста, помогите мне как можно скорее, поскольку я буквально трачу много времени здесь, пробуя множество возможностей. Также я хочу информировать вас о том, что я новичок в gradle.
Я также скопировал cucumberoptions, присутствующие в моем файле cucumber runner
@CucumberOptions(features = { "classpath:featurefile" }, glue = { "classpath:com.hal.brands.test.stepdefinition",
"classpath:com.hal.brands.helper" },
plugin = { "pretty", "json:target/HalBrands.json", "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:" },
monochrome = true, tags = "@Api")
Комментарии:
1. Попробуйте повторить
--plugin
ключевое слово для каждого параметра.'--plugin', 'pretty', '--plugin', 'json:target/InspireBrands.json', '--plugin', 'com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:'
Ответ №1:
Пожалуйста, удалите json: чтобы избавиться от исключения, которое вы получаете из-за недопустимой схемы!
Комментарии:
1. Я думаю, что json не следует удалять. Вместо этого нам нужно разделить строки, как показано ниже ‘—plugin’, ‘json: target /InspireBrands.json’, ‘—plugin’, ‘com.aventstack.extentreports.cucumber.adapter. ExtentCucumberAdapter:отчет’
Ответ №2:
Полное решение приведено ниже.
task cucumber() {
dependsOn assemble, testClasses
doLast {
javaexec {
main = "io.cucumber.core.cli.Main"
classpath = configurations.cucumberRuntime sourceSets.main.output sourceSets.test.output
args = ['--plugin', 'pretty',
'--plugin', 'json:target/HalBrands.json',
'--plugin', 'com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:Report',
'--glue','com.hal.brands.test.stepdefinition',
'src/test/resources','src/main/java',
'--tags', '@Api'
]
}
}
}