2016-10-28 5 views
0

Я использую py.test с селеном и applitools Глаза --- те последние части не имеют значения, только часть py.test делает. Я вычисляя некоторые конфигурации сеанса уровня тестового прогона с использованием сеансового уровня светильников, например, так:как распечатать значение приспособления для сессии py.test

@pytest.fixture(scope='session') 
def branch(request,timestamp): 
branch = request.config.getoption('--branch') 
if not branch and not request.config.getoption('--live'): 
    # auto-generate branch 
    branch = "auto " + timestamp 
return branch 

Я хотел бы напечатать вычисленное значение как часть заголовка тест --- или любым иным способом верните его в истинное начало.

Вначале я попытался использовать capsys.disable() в функции ветвления, но у меня появилось сообщение об ошибке, что capsys - это прибор уровня функции, поэтому его нельзя использовать с помощью прибора уровня сеанса. Справедливо.

Затем я попытался скопировать пример для добавления информации заголовка протокола испытаний:

def pytest_report_header(config,branch): 
    print branch 

Но это не кажется, что ветвь доступна как приспособление для pytest_report_header. Я мог бы напрямую вызвать функцию branch(), но этот вид побеждает цель.

Я видел this question, но я не могу сказать, применимо ли это - это немного над моей головой py.test-wise.

Кажется, что это должно быть простой задачей, но я застрял --- какие-нибудь идеи?

ответ

0

Я не понял ответа на вопрос, который я задал, но я решил решение моей проблемы: поскольку я выполняю селеновое тестирование, вся работа по захвату вывода в моем случае не имеет значения, поэтому я может полностью отключить его.

Я только что открыл флаг -s для py.test, который делает именно это.