当前位置: 首页 > 知识库问答 >
问题:

cucumber可以找到特征文件,但不能生成助手方法——使用groovy和geb

仇征
2023-03-14

我正在尝试设置BDD框架,我希望:

  • src/main/groovy中的我的页面文件(geb页面)
  • src/test/resources中的功能文件
  • src/test/groovy中的步骤定义文件

我正在使用这个gradle Cumber插件

问题:cucumber任务能够定位特征文件,但不能在groovy中生成帮助器方法。不确定我错过了什么,请帮忙...

单击此处查看项目设置

 plugins { id "com.github.samueltbrown.cucumber" version "0.9" }
 group 'com.orbitz.cucumber'
 version '1.0'
 apply plugin: 'java'
 apply plugin: 'groovy'
 apply plugin: 'idea'
 def gebVersion = "0.9.2"
 def seleniumVersion = '2.46.0'
 def driver = "firefox"
 def cucumberJvmVersion = '1.2.2'
 sourceCompatibility = 1.7
 repositories { mavenCentral()  }
 dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    compile "org.gebish:geb-junit4:$gebVersion"
    compile "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
    testCompile "info.cukes:cucumber-core:$cucumberJvmVersion"
    testCompile "info.cukes:cucumber-groovy:$cucumberJvmVersion"
 }
 cucumber {
    formats = [
            'pretty', 
            'html:build/reports/cucumber', 
            'junit:build/cucumber.xml'
    ]
    featureDirs = ['src/test/resources/orb/wl/pages/']
    glueDirs = ['src/test/groovy/orb/wl/pages/']
    dryRun = false
    monochrome = false
    strict = false
 }
$ ./gradlew cucumber
:compileJava UP-TO-DATE
:compileGroovy UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:cucumber
@search
Feature: Searching orbitz website

  Given I go to orbitz hotels page
  When I search hotels in "Chicago, IL" from "12/01/2015" to "12/02/2015"
  Then I should see chicago hotels

0 Scenarios
0 Steps
0m0.000s

BUILD SUCCESSFUL

共有1个答案

龙俊良
2023-03-14

解决方案:
我想我忘记在上面的bdd场景中添加Scenario关键字了(从输出中可以看到)。添加场景后,一切正常。有趣的是,cucumber在没有场景的情况下不会抛出错误,但它像一个简单的文本一样对待它

Feature: Searching orbitz website
 Scenario: orbitz hotels search should work fine
 Given I go to orbitz hotels page
 When I search hotels in "Chicago, IL" from "12/01/2015" to "12/02/2015"
 Then I should see chicago hotels 
 类似资料:
  • 我正在使用空手道测试REST API,现在我正在尝试并行运行特性文件: 该测试仅并行运行3个特性文件,并不运行所有5个特性。我从CucumberRunner.Parallel函数中得到了这段代码:

  • 我已经写了我的firsy cucumber特征文件。当我将功能文件作为Cucumber功能运行时,会出现以下错误 “警告:cucumber-jvm的--format选项不推荐使用。请改用--plugin。”-我在我的@CucumberOptions of runner类中使用了“plugin”,但仍然得到相同的错误 场景:验证登录页面#c:/selenium/regressiontest/modu

  • 遵循文档中的示例: https://symfony.com/doc/current/page_creation.html 我遇到这个错误消息: 自动加载程序期望类"App\Controller\LuckyController"定义在文件"/var/www/my-project/供应商/作曲家/.../... /src/Controller/LuckyController.php”。找到该文件,但类

  • 我是cucumber领域的新手,我只想为我的场景的上下文描述一个聚合。我有一个模型和如下所示的DataTransferObject,我想编写一个返回JSON的REST Api。 但是,我如何编写给定的部分并以一种清晰的方式描述对象,即有三个不同的具有聚合的类?

  • 在cucumber测试中,我想在不改变特性文件的情况下跳过一些特性文件,比如添加额外的标记。虽然标签可以排除功能文件运行,但我不能修改这些文件。是否有方法在maven pom.xml中进行配置?或者我可以使用带有特殊特性参数的@cucumberoptions吗? 一种方法是使用Maven插件为每个特性文件生成一个Junit Runner类。然后,通过,我们可以指定排除或包含以排除或包含那些Juni