Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:04
    luke-hill commented #538
  • 13:11
    svenwin commented #538
  • Jun 28 08:38
    luke-hill commented #537
  • Jun 28 08:37

    luke-hill on bundler

    (compare)

  • Jun 28 08:37
    dependabot[bot] commented #544
  • Jun 28 08:37
    luke-hill closed #544
  • Jun 28 08:37
    aslakhellesoy commented #552
  • Jun 28 08:37

    luke-hill on main

    Development updates (#552) - U… (compare)

  • Jun 28 08:37
    luke-hill closed #552
  • Jun 27 22:14
    BrianHawley commented #544
  • Jun 27 22:12
    BrianHawley opened #552
  • Jun 26 19:03
    BrianHawley commented #544
  • Jun 26 19:03
    BrianHawley commented #544
  • Jun 26 19:01
    BrianHawley commented #544
  • Jun 26 19:00
    BrianHawley commented #544
  • Jun 26 18:51
    BrianHawley commented #544
  • Jun 26 18:49
    BrianHawley commented #544
  • Jun 26 18:47
    BrianHawley commented #544
  • Jun 23 10:05
    luke-hill commented #544
  • Jun 23 10:03
    dependabot[bot] synchronize #544
Eric Kessler
@enkessler
Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/)
It takes a table instead of a multiline string.
greybox99
@greybox99
so
Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/) do |expected_words|
expected_words.split("\n").each do |word|
expect(last_command_started).to include(word)
end
end
Eric Kessler
@enkessler
I think that it is already defined. Just use it in your Gherkin.
greybox99
@greybox99
oh

Ambiguous match of "the output should contain all of these lines:":

aruba-0.14.2/lib/aruba/cucumber/command.rb:356:in /^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/' features/step_definitions/lines_steps.rb:1:in/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/'

Eric Kessler
@enkessler
Then the output should contain all of these lines:
  | foo |
  | bar |
  | bay buzz|
Yep. An ambiguous match is what would happen if you try to define a pattern that conflicts with an existing pattern.
greybox99
@greybox99
Then the output should contain all of these lines: # aruba-0.14.2/lib/aruba/cucumber/command.rb:356
  | uptime |
  | days   |
  expected [#<Aruba::Command(#<Aruba::Processes::SpawnProcess:9483560 commandline="w": output=" 17:05:29 up 15 days,  3:21,  1 user,  load average: 0.00, 0.01, 0.05
  USER  ...">)>] to include an object have output: string includes: "uptime"

     object at index 0 failed to match:
        expected " 17:05:29 up 15 days,  3:21,  1 user,  load average: 0.00, 0.01, 0.05\nUSER     TTY      FROM       ...PU   PCPU WHAT\ncentos   pts/0    10.2.153.10      11:51    1.00s  1.35s  0.18s sshd: centos [priv]" to have output: string includes: "uptime" (RSpec::Expectations::ExpectationNotMetError)
  features/landingzone_baseline.feature:35:in `Then the output should contain all of these lines:'
worked
thank you so much @enkessler
Eric Kessler
@enkessler
Glad to help.
Sam Leiendecker
@sleiendecker
is there a way to run multiple sessions concurrently?
I'm using cucumber with capybara
Eric Kessler
@enkessler
Do you mean run multiple tests at once, each with their own browser?
Sam Leiendecker
@sleiendecker
@enkessler yes
well, with the same browser
I'm using webdriver.io for a different test suite, and the test runner has a wdio.conf file with a maxInstances property
so if you set that to 3, and have chrome and firefox in your capabilities.browserName, it'll launch 3 firefox sessions and 3 chrome sessions
greener
@greenr_twitter
Hi, i'm using cucumber + ruby for iOS. when i worked on Xcode 8.3 simulators, everything is fine and i can specify . Xcode 9 released recently and i installed Xcode 9. when i started running test cases with cucumber + ruby, i found i can only specify iOS 11 simulators and launch tests successfully. if i specify iOS 10.3.1 or prior simulators, a iOS 11 simulator was launched instead. i've installed 10.3.1 simulators for Xcode 9. not sure what happened. did anyone encounter same issue and resolve it?
Frank Bravo
@lefty1975

Longtime Cucumber user and Ruby enthusiast.
On a serious note, I'm struggling with when I should delete data and where I can (e.g. After hook)?

Scenario: As John I verify I feel good once I put on shoes
Given: I create a person named John
When:  I put my shoes on
Then: I feel refreshed
And: I delete person named John using an API call

In this scenario I am setting up my person named John from the UI, however, I don't want this person hanging around in my DB, so I'm adding a step to delete this individual. The scenario is not about deleting John, but feeling good about putting on shoes. So, if for some reason my deletion fails, then the test fails which is incorrect. So, can I abstract this step and place it into an After hook using a variable that I store John in? What if I have multiple scenarios creating multiple Johns, can I still abstract this step?

I know this might sound jumbled, so please tell me to provide further or clearer details.
Thanks.

Eric Kessler
@enkessler
@lefty1975 An After hook works well enough for this kind of thing.
Given(/^I create a person named John$/) do
  # Instance variable so that future steps can use this person
  @person_for_test = create_new_person('John')

  # Other steps may have already created people
  @people_created ||= []
  @people_created << @person_for_test
end
After do
  # Possible that no person creating steps were called/reached
  if @people_created
    @people_created.each do |person|
      delete_person(person)
    end
  end
end
Frank Bravo
@lefty1975
@enkessler sorry for the late response. Thank you for this solution.
sivaram
@SivaramMyid_twitter
Hi,
I am using scenario.failed? at after hook. But the control in not reaching out here. I am using raise to verify results at step_definitions? Please advice that I need to close and open the app when scenario failed.
Jonathan Kirst
@jskirst
Hey all, does anyone have experience working with cucumber-expressions? I wanted to try them out, and appear to have the gem installed, but none of my use cases are working. I suspect cucumber-expressions has not been fully implemented yet. Can anyone confirm or deny that?
I would expect the following to work, but its not -
Given "I am {string}" do |name|
Eric Kessler
@enkessler
I haven't upgrade yet, but I am under the impression that things are working.
https://cucumber.io/blog/2017/09/21/upgrading-to-cucumber-3
Jonathan Kirst
@jskirst
@enkessler Thanks for the link, definitely suggests so - I'll keep digging and report back here either way.
Frank Bravo
@lefty1975
I have been trying to solve this error message when executing my features in parallelization and cannot figure it out. I have searched high and low with no success. I do not have a rerun file either, so I'm at a lost. I can provide my ERB for verification, but I have used online tools to have it validated.
cucumber.yml was found, but could not be parsed with ERB.  Please refer to cucumber's documentation on correct profile usage.
#<Errno::EEXIST: File exists @ dir_s_mkdir - ./features/reports/2017-10-26__0925_32s>cucumber.yml was found, but could not be parsed with ERB.  Please refer to cucumber's documentation on correct profile usage.
#<Errno::EEXIST: File exists @ dir_s_mkdir - ./features/reports/2017-10-26__0925_32s>
Eric Kessler
@enkessler
Let's have a look at your cucumber.yml, shall we?
Frank Bravo
@lefty1975
<%
  @time = Time.now.strftime("%Y-%m-%d__%H%M_%Ss")
  Dir.mkdir('./features/reports/') unless File.exists?('./features/reports/')
  @report_path = "./features/reports/#{@time}/"
  @screenshot_path = "./features/reports/#{@time}/"
  @new_dir_setup = -> { Dir.mkdir(@report_path) unless File.exists?(@report_path) }
  ENV['SERVER_URL'] = ENV['SERVER_URL']
%>

# Cucumber Base Profile components:
common: RESET_BETWEEN_SCENARIOS=1 SERVER_URL=<%= ENV['SERVER_URL']%> -f progress -r features
html_report: <%@new_dir_setup.call%> -f html --out=<%= @report_path%>web_test_report<%= ENV['TEST_ENV_NUMBER']%>.html SCREENSHOT_PATH=<%= @screenshot_path%>
Eric Kessler
@enkessler
Have you played the fun game of 'does it parse if I remove this bit' yet?
Also, ENV['SERVER_URL'] = ENV['SERVER_URL'] isn't going to do much for you.
Frank Bravo
@lefty1975
no, but I am willing to give anything a try at this point.
except for Coconut milk, I can't stand coconut.
Eric Kessler
@enkessler
Why do you call <%@new_dir_setup.call%> in the html_report profile instead of up with the rest of the setup code?
I think that gets evaluated when the file is read in, not just when the html_report profile is used.
Frank Bravo
@lefty1975
Truth be told, I borrowed/copied this ERB code from a former colleague and never really thought twice about it. So, let me play around with that as well. The more I look like at that line, it seem unwarranted.
Anna Baik
@TesterAB_twitter
This is probably an obvious question: but are there actually any changes between the Ruby cucumber 2.4.0 gem and the 2.99.0 gem?
Anna Baik
@TesterAB_twitter
I'm basically looking at first steps to upgrade to 3.0.0 and wondering whether there's any point in going through 2.99.0
Eric Kessler
@enkessler

@TesterAB_twitter Because Cucumber is Semantically Versioned, there should not be any changes from 2.4 to 2.99 that would be a problem for you (i.e. breaking changes). You will quite possibly encounter them at 3.0 but if you plan on upgrading to that point anyway, then you might as well go straight there and deal with whatever comes up.

Here is a handy blog post about upgrading to Cucumber 3.0 https://cucumber.io/blog/2017/09/21/upgrading-to-cucumber-3

Frank Bravo
@lefty1975
@TesterAB_twitter I have encountered an issue upgrading to Cucumber 3.0 grosser/parallel_tests#586 when using the parallel_tests gem. Just an FYI if you're using this gem.
Eric Kessler
@enkessler
I use that where I work but we have not upgraded to Cucumber 3.x yet. At a glance, parallel_tests does not declare any particular gem dependencies, so there is nothing protecting it from upgrades.
Björn Rasmusson
@brasmusson
@enkessler The parallel_tests gem includes a formatter which instantiate/use internal Cucumber-Ruby formatters which have been rewritten to the new formatter API, so that parallel_tests formatter does not work with Cucumber-Ruby 3.x, see cucumber/cucumber#294
@TesterAB_twitter The only difference in 2.99.0 is that it issues a deprecation warning for Transforms, which are removed in v3.0.0, see cucumber/cucumber-ruby#1190
Anna Baik
@TesterAB_twitter
thanks all - that was helpful. We do need to change one place that we use Transform from the look of it - but we can upgrade to 2.99.0 and then it'll let us know if there's anywhere we missed before we go to 3.
greener
@greenr_twitter
Hi, I'm using cucumber-ruby 3.0 and want to generate json reports for consolidated multiple reports via the command below, but no luck. I always get empty report file. can anyone advise me how to generate json reports? thanks!
cucumber --tags @allfeatures -f json -o reports/results.json
Eric Kessler
@enkessler
Do you get no results with other formatters? Try using the pretty or html formatter as well and see if they agree with the json formatter.