debugging python-behave steps with pycharm

  • Last Update :
  • Techknowledgy :

Updated: July 31, 2020, July 31, 2020 1 minute read , July 31, 2022 19 minute read , July 24, 2022 17 minute read

Feeature: Test my scenario
Scenario: my scenario
Given I have a text file
When I print "hello"
Then I should get "hello"
printed
from behave
import when

@when("I print " {
         message
      }
      ")
      def print_hello(message):
      import pdb pdb.set_trace() # I want to add a
      break point in here(
         for whatever reason)
      print("hello")
behave - n "my scenario"--no - capture

Suggestion : 2

The text is available to the Python step code as the “.text” attribute in the Context variable passed into each step function.,The table is available to the Python step code as the “.table” attribute in the Context variable passed into each step function. The table for the example above could be accessed like so:,Sometimes it’s useful to associate a table of data with your step.,You may define a single Python step that handles both of those Then clauses (with a Given step that puts some text into context.response):

Feature: showing off behave

Scenario: run a simple test
Given we have behave installed
When we implement a test
Then behave will test it
for us!
from behave
import *

@given('we have behave installed')
def step_impl(context):
   pass

@when('we implement a test')
def step_impl(context):
   assert True is not False

@then('behave will test it for us!')
def step_impl(context):
   assert context.failed is False
% behave
Feature: showing off behave # features / tutorial.feature: 1

Scenario: run a simple test # features / tutorial.feature: 3
Given we have behave installed # features / steps / tutorial.py: 3
When we implement a test # features / steps / tutorial.py: 7
Then behave will test it
for us!# features / steps / tutorial.py: 11

1 feature passed, 0 failed, 0 skipped
1 scenario passed, 0 failed, 0 skipped
3 steps passed, 0 failed, 0 skipped, 0 undefined
features /
   features / everything.feature
features / steps /
   features / steps / steps.py
features /
   features / signup.feature
features / login.feature
features / account_details.feature
features / environment.py
features / steps /
   features / steps / website.py
features / steps / utils.py
Feature: Fight or flight
In order to increase the ninja survival rate,
As a ninja commander
I want my ninjas to decide whether to take on an
opponent based on their skill levels

Scenario: Weaker opponent
Given the ninja has a third level black - belt
When attacked by a samurai
Then the ninja should engage the opponent

Scenario: Stronger opponent
Given the ninja has a third level black - belt
When attacked by Chuck Norris
Then the ninja should run
for his life

Suggestion : 3

The steps of a Scenario in the feature file in Behave should have implementation logic written in Python. This is known as the implementation/step definition file (.py extension) and should be present within the steps directory.,In the feature file, we have two Scenario with similar steps. In Behave, we can execute more than one step in a single step. This can be done with the help of context.execute_steps method in the step implementation file.,The output shows debit and credit. These two values have been passed with almost similar Given steps in the feature file. In step implementation, we have parsed both the steps.,The output shows the purchase items and their counts. These two values have been passed with almost similar steps (but dissimilar data types) in the feature file. In step implementation, we have used multiple methods to obtain the values.

The feature file in Behave can be as follows −

Feature− Verify book name added in Library.
Scenario− Verify Book name.
Given− Book details.
Then− Verify book name.

Following is the corresponding definition file in Behave tool −

from behave
import *
@given('Book details')
def impl_bk(context):
   print('Book details entered')
@then('Verify book name')
def impl_bk(context):
   print('Verify book name')

To install pip, run the below mentioned command −

pip install pip

We can update an existing version of Behave with the following command −

pip install– U behave

To install Setuptools, run the below mentioned command−

pip install setuptools