Повторное использование общих определений шагов между файлами функций в поведении Python

у меня есть некоторые проверки, которые необходимо включить в несколько файлов функций, я не хочу дублировать определения шагов в других определениях шагов.

eg:

@when(u'parquet files exist in "{container}" container in the data lake')                                           
def step_imp(context, container):
parquet_files_array = []
for parquet_file in context.list_of_files:
    parquet_files_array.append(parquet_file.name)
check_parquet_files_are_present_in_the_container_area_data_lake(parquet_files_array)**

я должен использовать эту проверку и в других файлах определения шага.

Я создал класс common_steps.py и вставил туда все общие шаги, мне интересно, как их можно повторно использовать без дублирования нескольких функций.


person Pradeep    schedule 16.02.2021    source источник
comment
На самом деле у вас может быть несколько файлов определения шагов в каталоге features/steps. Если вы этого не сделали - просто переместите файл common_steps.py в директорию steps. Вы должны иметь возможность использовать шаги, определенные в этом файле, для всех ваших функций.   -  person automationleg    schedule 22.02.2021


Ответы (2)


Вы пробовали их импортировать?

# in <step definitions>.py
import common_steps

@when(u'parquet files exist in "{container}" container in the data lake')                                           
def step_imp(*args, **kwargs):
    common_steps.step_imp(*args, **kwargs)



#in common_steps.py
def step_imp(context, container):
    # implementation
person Woody    schedule 16.02.2021

Когда common_steps.py импортируется, нам не нужно определять шаг в соответствующем файле определения шага, когда мы выполняем файл функции, доступ к определению шага будет осуществляться из common_steps автоматически.

person Pradeep    schedule 24.02.2021