How do you mark a Cucumber Scenario as Pending

后端 未结 4 616
面向向阳花
面向向阳花 2020-12-16 08:51

How do I mark a cucumber scenario as pending so it doesn\'t get counted as a passed?

Scenario: Guest should not see edit link
# pending implementation


        
相关标签:
4条回答
  • 2020-12-16 09:35

    Another possibility is the @wip tag (work in progress). Scenarios tagged @wip will not be run by default, but just when you explicitly request them.

    @wip
    Scenario: New product form should have some special field
      Given I still work on this feature
    

    This way you can exclude some scenarios from the automated build, so that it doesn't break while you are working on the feature.

    0 讨论(0)
  • 2020-12-16 09:39

    Okay figured this one out.

    The Scenarios steps are marked as pending if it's not found in any of the steps files.

    Scenario: New product form should have some special field
      Given joe is logged in as an user
      When on the new exercise page
      Then the select field should have some special field
    

    It's even nice enough to stub out the pending step.

    When /^on the new exercise page$/ do
      pending # express the regexp above with the code you wish you had
    end
    
    0 讨论(0)
  • 2020-12-16 09:49

    The problem with the @wip tag, I've found, is that it doesn't make your test suite yellow. It completely ignores the wip features, and you tend to forget they exist. This has bitten my team in the rear when scenarios are tagged as @wip and then forgotten. I wish there was a better solution. The best I have is adding this custom step:

    Given /^PENDING/ do
      pending
    end
    

    Rather than mark a real feature as pending, I can put this into the lineup with a message, like so:

    Given PENDING: we need client input
    

    Then it shows up like this:

    (::) pending steps (::)
    
    features/example.feature:15:in `Given PENDING: we need client input'
    

    Pending halts the chain of tests, but it does NOT prevent cucumber from nagging about any undefined steps that follow in that same scenario. Also, ideally failing and pending features would tell you the name of the scenario that failed, but they don't.

    0 讨论(0)
  • 2020-12-16 09:55

    In addition to averell's answer, you can exclude scenario tags when running cucumber.

    If @todo and @wip are tags you want to use for scenarios that are work in process or just mark pending scenarios, run your features like:

    cucumber --tags ~@todo --tags ~@wip

    If you're using Guard do something like this:

    guard 'cucumber', :notification => true, :all_on_start => true,
                          :cmd => "bundle exec cucumber", 
                          :cli => "--tags ~@todo --tags ~@wip" do
       watch(%r{^features/.+\.feature$})
       watch(%r{^features/support/.+$})  { 'features' }
       watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
         Dir[File.join("**/#{m[1]}.feature")][0] || 'features'
       end
    end
    
    0 讨论(0)
提交回复
热议问题