by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 17 08:04
    luke-hill commented #483
  • Sep 11 21:22
    ykitamura-mdsol commented #483
  • Sep 08 11:15
    luke-hill labeled #483
  • Sep 08 11:15
    luke-hill commented #483
  • Sep 08 11:08
    muresanbeniamin commented #483
  • Sep 08 11:07
    muresanbeniamin edited #483
  • Sep 08 10:44
    luke-hill commented #483
  • Sep 08 10:44
    luke-hill commented #483
  • Sep 08 10:02
    muresanbeniamin edited #483
  • Sep 08 10:01
    muresanbeniamin edited #483
  • Sep 08 10:00
    muresanbeniamin opened #483
  • Sep 08 08:06
    luke-hill synchronize #482
  • Sep 08 08:06

    luke-hill on updated_support

    Update mime types restriction t… (compare)

  • Sep 08 07:56
    luke-hill opened #482
  • Sep 08 07:54

    luke-hill on updated_support

    Improve notes on coverage Update gem dependencies accordi… Update capybara and mime_types … (compare)

  • Sep 03 09:05
    luke-hill commented #481
  • Sep 02 16:17
    aslakhellesoy commented #481
  • Sep 02 07:35
    luke-hill commented #481
  • Sep 01 19:11
    aslakhellesoy opened #481
  • Aug 31 08:56

    renovate[bot] on circleci-ruby-2.x

    (compare)

Jonathan Kirst
@jskirst
@enkessler Thanks for the link, definitely suggests so - I'll keep digging and report back here either way.
lefty1975
@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?
lefty1975
@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.
lefty1975
@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.
lefty1975
@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

lefty1975
@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.
greener
@greenr_twitter
Alright. I've get results. I found that I added exit tests if any errors in After hooks and I can't get any reports if any test failures.
Thanks for suggestions!
BhupenderAgarwal24
@BhupenderAgarwal24
Hi, can I pass a variable to scenario which should be pass to each step under that scenario?
Eric Kessler
@enkessler
What is your use case/context?
BhupenderAgarwal24
@BhupenderAgarwal24
I have a variable which gets used for each step and instead of passing along which each step I want to pass it to scenario which should pass it to all steps underneath it
Eric Kessler
@enkessler

So you've got something like

Scenario:
  * this step needs a "7"
  * this step also needs that "7"
  * don't forget the "7"

And you want something like

Scenario: Everyone loves "7"
  * I love that number
  * so do I
  * me too
Yes?
BhupenderAgarwal24
@BhupenderAgarwal24
yes
so as per your example, if I pass that parameter along with scenario, does it get pass on to all steps?
Eric Kessler
@enkessler
Nah. Things don't work like that.
You can do this, however.:
Scenario:
  Given we are working with the number "7"
  Then we can do stuff with it
  And even more stuff
Given /^we are working with the number "(\d+)"$/ do |number|
  @current_number = number
end

Then /^we can do stuff with it$/ do
  puts "Doing stuff with #{@current_number}"
end

Then /^even more stuff$/ do
  puts "Doing more stuff with #{@current_number}"
end
Cezar Cruz
@cezarcruz
Hello guys, i'm very new in cucumber and I have this doubt: How I deal with my client database? in some scenarios i need to get some id from database (executing a sql) and i not sure about the good way to do. There is some good pratice to deal with?
BhupenderAgarwal24
@BhupenderAgarwal24
Thank you @enkessler for the example. This perfectly would solve my problem.
Eric Kessler
@enkessler
@BhupenderAgarwal24 You're welcome.
BhupenderAgarwal24
@BhupenderAgarwal24
Hi, can we use same pattern for different statements while still maintaining the same definition?
For example, is it possible to have something like below:
Scenario: When I call my friend
Given He got his phone with him
When He's not in office
Then He'll attend my call
Given I call my father
And He's not in office
But Still couldn't attend my call
As you can see above I have When, And with same statement. Is it possible to have same definition for both statement instead of re-writing it
Eric Kessler
@enkessler
Yes, it is. Step definitions are matched to Gherkin statements using regular expressions. An example of a step definition that would match both When I call my friend and Given I call my father is
When /^I call my (friend|father)$/ do |person|
  call_person(person)
end
The keyword does not matter when matching step definitions. Given/When/And/etc. are ignored and only the freeform part of the statement is considered.
BhupenderAgarwal24
@BhupenderAgarwal24
thanks for the resolution :smile:
Eric Kessler
@enkessler
You're welcome.
Ryan
@rstellar
Hello!
The following appears to work when manually executed with binding.pry but fails when run as part of my Ruby step file. Any advice?
[10] pry(#<Cucumber::Rails::World>)> page.first('a', text: "edit")
=> #<Capybara::Node::Element tag="a" path="/html/body/div[2]/div/div/div/div[2]/form/div[4]/p[2]/div/div/div/div/div/table/tr[2]/td[3]/a">
[11] pry(#<Cucumber::Rails::World>)> page.first('a', text: "edit").click
=> Obsolete #<Capybara::Node::Element>
[12] pry(#<Cucumber::Rails::World>)>
Eric Kessler
@enkessler
In general, when code works in irb/pry but not in the 'end to end' test, the root cause is either timing or the way in which you have loaded up your code in those two different environments.
If you are using binding.pry then your code is presumably the same as when you run a test because you are running a test. So my guess is that it is a timing issue.
If you replace the binding.pry with a sleep 5, does it work? Is the page not done moving around and it is working in pry because it has extra time before you start typing things at it?
Ryan
@rstellar
Thank you @enkessler I didn't know about Sleep. I will try it. Thank you.
Eric Kessler
@enkessler
@rstellar Clarification: don't actually use sleep as a solution. If using sleep makes it work again, that just means that the problem is a timing issue.
That does not, however, make using sleep a good solution for timing issues.