Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Behave + PyCharm


(5am) #1

(отредактировал тему и первое сообщение)

Доброго времени суток,
Не получается подружить Behave + PyCharm

установил behave через pip.
но простейший example работать не хочет, ругается на
from behave import given, when, then
“Unresolved reference name”

через питоновскую консольку импортится все корректно

Спасибо


(5am) #2

ммм… есть люди использующие behave с 3им питоном ? как его заставить работать


(Mykhailo Poliarush) #3

странно должно работать, сейчас у себя попробую и отпишусь

официальной поддержки нет, обсуждение по поводу, как это можно сделать можно посмотреть тут https://github.com/behave/behave/issues/119


(Mykhailo Poliarush) #4

Если посмотреть на подсказку, то видим, что PyCharm (а я поставил последнюю 3ю версию) еще все равно не все случаи может расспознать

Unresolved reference ‘given’ less… (Ctrl+F1) This inspection
detects names that should resolve but don’t. Due to dynamic dispatch
and duck typing, this is possible in a limited but useful number of
cases. Top-level and class-level items are supported better than
instance items.

Например, ему тяжело узнать что импортируется, потому что есть такой код в
C:\Program Files (x86)\Python27\Lib\site-packages\behave\__init__.py

names = 'given when then step'
names = names + ' ' + names.title()
names = names + ' step_matcher'
__all__ = names.split()

т.е. то что будет фактически импортироваться, вычисляется в момент загрузки модуля, потому PyCharm и не может распознать этот код.

Вот если изменить код на

__all__ = ['given', 'when', 'then', 'step', 'step_matcher']

то все будет нормально распознаваться


(5am) #5

спасибо, так не подчеркивает

возможно, сможете помочь с этой темой ?:


(Mykhailo Poliarush) #6

Да смогу, даже уже отписался и выложил решение.