Cucumber before hook runs after Given step? - cucumber

When I run something in the Before hook it seems to happen after the first Given step.
Scenario: Stack Overflow Example
Given some condition
When something happens
Then something should be
Before do
puts 'hello'
end
Outputs:
Scenario: Stack Overflow Example
Given some condition
Hello
....
This happens for each step.
Is this a misunderstanding on my part or a cucumber feature? How do I run something before the given step?
Many thanks in advance.
R

I don't know the technical reason but cucumber wont print using a plain 'puts' statement until after the scenario is finished.
Try STDOUT.puts "hello" and you will see that the Before hook runs first.

Related

Taurus PassFail Issues when testing Jmeter.jmx script

So I'm learning a little bit about Taurus and was trying to apply some pass fail criteria to my .jmx script. When I try to evaluate a specific sampler, it seems to not run the pass fail criteria at all, but if I were to do a simple avg-rt > 10s, continue as failed , this works, but the issue is I want to evaluate each sampler specifically.
Here is a screenshot of my .yml file
I was using this link as reference to follow but I can't seem to get it to work with my script.
https://dzone.com/articles/running-your-load-tests-with-pass-fail-criteria-a
Any help and advice would be appreciated :)
Thank you!
For me it seems to run pass/fail criteria
As you like screenshots here is the screenshot of Taurus YAML file:
And here is the screenshot of "test.jmx" which basically uses simple single Dummy Sampler:
Just in case here is the link to the official documentation of the subsystem: Pass/Fail Criteria
So the issue was that spaces matter lol.
rewriting it as avg-rt of first_navigate>1s, continue as failed does the trick :)

Karate + Cucumber report missing Doc Strings for the called scenario responses

Cucumber report is missing the doc strings for the responses from a called scenario.
in a given scenario, i am calling multiple scenarios using Call ()
its printing randomly sometimes response from the called scenarios and sometimes not. This is preventing us visualizing the data flow between API in the test report.
Although the karate-log is having the response from that called scenario, its just the cucumber reporting is not printing it. we are using karate 0.9.4, cucumber reporting 4.6.0.
When statement not printing Doc String
I am trying to print it like this.
When Statement with Doc string
Please try with 0.9.6.RC3 - if it still doesn't work it is a bug and please follow this process (we need a way to replicate): https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

How to stop the whole test execution but with PASS status in RobotFramework?

Is there any way I can stop the whole robot test execution with PASS status?
For some specific reasons, I need to stop the whole test but still get a GREEN report.
Currently I am using FATAL ERROR which will raise a assertion error and return FAIL to report.
I was trying to create a user keyword to do this, but I am not really familiar with the robot error handling process, could anyone help?
There's an attribute ROBOT_EXIT_ON_FAILURE in BuiltIn.py, and I am thinking about to create another attribute like ROBOT_EXIT_ON_SUCCESS, but have no idea how to.
Environment: robotframework==3.0.2 with Python 3.6.5
There is nothing built-in to support this. By design, a fatal error will cause all remaining tests and suites to have a FAIL status.
Just about your only choice is to write a keyword that sets a global variable, and then have every test include a setup that uses pass execution if to skip the test if the flag is set.
If I understood you correctly, you need to pass the test execution forcefully and return green status for that test, is that right? You have a built in keyword "Pass Execution" for that. Did you try using that?

Load Steps into Console?

Is it possible to load the step definitions I have defined into the calabash-android console?
I would like to be able to use them when navigating the app within the console.
Thanks
No from the console you can not run a single step definition.
But you can start execution of a test at a specific line appending parameter to the call to start your test
:<linenumber>
This will start execution of your feature file from that specific line and it will run from there to the end of the file.
So while it is not what you are looking for at least it is something.
Did you try step('<step_name>') method?
To be honest I'm not sure if this will work. I know it's working insinde Ruby methods and step definitions - I wanted to post a comment but I can't with 28 points of reputation ;)
You can also try making ruby methods with code from within the step definition:
Then /^I do something$/ do
some code
goes here
end
def do_something
some code
goes here
# same code as in step definition
end
or just use step method:
def do_something
step('I do something')
end
and then call it in a calabash console (I prefer using binding.pry inside some script rather than calling "pure" calabash-console - it makes me sure that I will have all needed methods included).

Execlp user library function

I've recently run into a question like this:
If you use execlp into a function and you have some more code below, in which situation will this code be executed?
For example:
execlp("ps","ps","-u","username",(char*) NULL);
some more code below --> what does its execution depend on?
Does it depend on the exit status of the program executed by execlp? Or will it be executed anyway because execlp does its stuff independently?
Thanks in advance
The only way that would happen is if execlp itself failed. Once the new program has been exec'd, it does not matter if that program succeeds or fails--it's already too late to go back to the original program instructions.

Resources