t.me/atinfo_chat Telegram группа по автоматизации тестирования

Ошибка при запуске pytest --language=es test_items.py: error: pytest: error: unrecognized arguments: --language=es

pytest
bash
reporting
python
webdriver
Теги: #<Tag:0x00007f21e4d031a0> #<Tag:0x00007f21e4d03060> #<Tag:0x00007f21e4d02f20> #<Tag:0x00007f21e4d02db8> #<Tag:0x00007f21e4d02c28>

(Anton Hauff) #1

Не могу разобраться в чем кроется ошибка. Собираю тест. Состоит из двух файлов:
confest.py:

import pytest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def pytest_addoption(parser):
    parser.addoption('--browser_name', action='store', default='chrome',
                     help="Choose browser: chrome or firefox")
    parser.addoption('--language', action='store', default='es',
                     help="Choose lang")

@pytest.fixture(scope="function")
def browser(request):
    browser_name = request.config.getoption("browser_name")
    user_language = request.config.getoption("language")
    if browser_name == "chrome":
        print("\nstart browser chrome for test...")
        options = Options()
        options.add_experimental_option('prefs', {'intl.accept_languages': user_language})
        browser = webdriver.Chrome(options=options)
    elif browser_name == "firefox":
        print("\nstart browser firefox for test...")
        fp = webdriver.FirefoxProfile()
        fp.set_preference("intl.accept_languages", user_language)
        browser = webdriver.Firefox(firefox_profile=fp)
    else:
        print("Browser {} still is not implemented".format(browser_name))
    yield browser
    print("\nquit browser...")
    browser.quit()

и test_items.py:

import time

def test_find_add_to_card_btn(browser):
    browser.get('http://selenium1py.pythonanywhere.com/catalogue/coders-at-work_207/')
    time.sleep(30)
    assert browser.find_element_by_class_name('btn-add-to-basket').is_displayed(), \
        'Кнопка добавления товара в корзину отсутсвует'

При попытке запустить тест через команду
pytest --language=es test_items.py
либо
pytest --browser=chrome test_items.py
выдает ошибку
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] […]
pytest: error: unrecognized arguments: --language=es

или
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] […]
pytest: error: unrecognized arguments: --browser=chrome

В чем она заключается? Куда смотреть? Где копать?

P.S. Данный код тест это задние с курса. Причем у других, я так понимаю, все успешно запускается.


(Runo Dante) #2

да пришлось голову поломать, на самом деле тут больше от внимательности зависит. любую ошибку можно загуглить,
pytest: error: unrecognized arguments - вот это вставляешь и ищешь.
А вообще тут четко тебе пишут: что не могут распознать переданные аргументы, значит дело в твоем файле где они прописаны, я смотрела на него долго, даже создала проект по аналогии.
ошибка ваша в том что вы некорректно обозвали файл с конфигурациями ваших опшенов
confest.py - а на деле pytest знает про conftest.py
переименнуйте файл и все должно полететь

удачного прохождения курса на степике :slight_smile:


(Anton Hauff) #3

На самом деле я гуглил. Может плохо, но гуглил. И искал ошибку в коде, но никак не в имени файлов. Спасибо большое!