Как генерировать отчеты о степени огурца 4 через Gradle

#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'         
                ]
                  
        }
       
    }
  }