由于黄瓜步骤语法,无法在gradle中生成测试报告

SMP*_*MPH 4 cucumber gradle geb selenium-webdriver

当我尝试在命令行中运行测试时,我收到以下错误消息.

测试基于Geb,Selenium和Cucumber/Groovy.

Caused by: org.gradle.api.GradleException: Could not generate test report to 'D:\Folder\ABCD\Auto\build\reports\tests'.
        at org.gradle.api.internal.tasks.testing.junit.report.DefaultTestReport.generateFiles(DefaultTestReport.java:84)
        at org.gradle.api.internal.tasks.testing.junit.report.DefaultTestReport.generateReport(DefaultTestReport.java:48)
        at org.gradle.api.tasks.testing.Test.executeTests(Test.java:482)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:530)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:513)
Run Code Online (Sandbox Code Playgroud)

添加了更多错误详情:

Caused by: java.io.FileNotFoundException: D:\Folder\ABCD\Auto\build\reports\tests\packages\When I enter valid registration details "d2bcons" and "fi rstdtwob" and "lastdtwob" and "d2bcons@trashcanmail.html (The filename, directory name, or volume label syntax is incorrect) 
Run Code Online (Sandbox Code Playgroud)

什么可能导致错误?

谢谢

SMP*_*MPH 7

经过一些调查后发现,这是由于dot (".")在Gherkin文件中用于其中一个测试步骤.

根本原因是当尝试生成带有步骤名称作为文件名的测试报告时,它会生成此错误,因为htlm除了扩展点之外,文件中的点无效.

希望这是明确和有益的.


Tob*_*s M 6

可以为 Cucumber 提供一个参数,以便它不会在文件名中使用无效字符。在您的 Cucumber runner 类中,您可以将以下参数添加到 CucumberOptions 属性中:

--filename-compatible-names

例如:

@CucumberOptions(junit = {"--filename-compatible-names"})
Run Code Online (Sandbox Code Playgroud)