Задать вопрос
  • Как запустить тесты в Pytest из списка?

    как угодно собираешь список упавших тестов, хоть из прогона хоть отчет распарсить.
    Можно заюзать хуку pytest_terminal_summary и в ней пройтись по упавшим тестам и выгрузить куда-нибудь, можешь любую другую в целом не так важно.

    Берешь хук pytest_collection_modifyitems и в ней фильтруешь список для запуска исключая все тесты которых нет в списке упавших тестов.
    Ответ написан
    Комментировать
  • Как запустить тесты в Pytest из списка?

    Tomio
    @Tomio
    backend developer (python, php)
    Ну самое простое - это составить текстовый файл (tests.txt) со списком тестов (по одному тесту на каждой строке) вида
    tests.py::TestClass::testMethod
    tests.py::TestClass::testMethod2
    tests.py::TestClass::testMethod3

    И затем в консоли выполнить:
    cat tests.txt|xargs pytest
    У вас начнут один за другим запускаться эти тесты
    Ответ написан
    Комментировать
  • Какая лицензия Windows нужна для запуска на виртуальной машине?

    @rPman
    Запутанная система лицензирования у майкрософт на столько сложная, что требуется специальный человек, который ходит на специальные курсы и сдает соответствующие экзамены, чтобы он мог объяснить вам что да как.

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

    Самая мелкая версия (с точки зрения лицензий и цены) которая может быть запущена внутри виртуальной машины - это win10 pro, и да, вам не подойдут версии oem. Еще есть форма лицензирования, когда вы берете лицензию в аренду на месяц (кажется доступна только с enterprise версий, там тоже куча разновидностей) а еще есть software assurance, которая как доп пакет позволяет лицензироваться от рабочих мест пользователей а не устройств (это если я верно понял то море поноса что написано на официальном сайте).

    Начиная с определенного количества рабочих мест/пользователей (надо еще разобраться что есть что), при использовании виртуализации или без, серверные версии могут оказаться выгоднее, при лицензировании на количество ядер процессора (любое количество пользователей).

    А еще есть/были различные программы в помощь мелкому бизнесу (от каких то оборотов или доходов в год, я не сильно уточнял) когда за относительно небольшую арендную плату вам дают доступ к огромному пакету продуктов чуть ли не без ограничений, включая необходимые версии windows.. но на ограниченный срок (пять лет кажется), т.е. чтобы основательно подсели на иглу, а вот потом доить по полной.

    p.s. без виртуализации, для маленьких офисов, может оказаться самый выгодный вариант win 10 home + минимальное количество процессорных блоков, к которым подключено одновременно несколько рабочих мест (монитор+клавиатура+мышь), на базе ibik aster, судя по тому что компания еще существует, они как то урегулировали споры с лицензированием (на форуме у них были эпичные цитаты общения с представителем майкрософт, по которому следовало что даже играть хотсит вдвоем нельзя на домашних версиях)
    Ответ написан
    Комментировать
  • Как ускорить ввод в Internet Explorer (IE) 11 в тестах Selenium?

    @1001001
    Используйте JS и browser.execute_script
    Подсмотреть функцию для вставки можно в Selenide
    browser.execute_script(s"return (function(webelement, text) {" +
          "if (webelement.getAttribute('readonly') != undefined) return 'Cannot change value of readonly element';" +
            "if (webelement.getAttribute('disabled') != undefined) return 'Cannot change value of disabled element';" +
            "webelement.focus();" +
            "var maxlength = webelement.getAttribute('maxlength') == null ? -1 : parseInt(webelement.getAttribute('maxlength'));" +
            "webelement.value = " +
            "maxlength == -1 ? text " +
            ": text.length <= maxlength ? text " +
            ": text.substring(0, maxlength);" +
            "return null;" +
            "})(arguments[0], arguments[1]);", element, text)
    Ответ написан
    3 комментария
  • Как организовать автоматизацию тестирования с 0?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В принципе все правильно. Берете и делаете. Серебрянной пули нет.

    Особенно порадовало, что "все занимаются тестированием"- это правильно. Лишь бы это не было "все - значит никто". И следите за тем, чтобы тестирование давало результат - либо тикет в системе либо фикс. Если баги находят, но просто говорят о них на кухне - это не тестирование. Если баг фиксится сразу, это не значит что коммит-сообщение можно ляпнуть "fixed some strange bug" - он должен содержать описание сценария в котором он происходит и как он влияет на пользователя.

    Улучшайте коммит-сообщения. Так чтобы из них можно было собрать патчноут и красиво показать пользователю. А не куча невнятного "внутряка". Формулируйте с позиции пользы, это заставит разработчиков немного больше гордиться проделанной работой, а следовательно добавит им мотивации. Для примера посмотрите как пишут патчноуты передовые представители игровой индустрии.

    По автоматизации .. подводные камни такие:
    - если автотестов много - их долго выполнять. Начните с небольшого количества 20-50. На них вы обкатаете внедрение и процесс. Не считайте никакие ROI - это бред. Чем считать ROI лучше написать еще один полезный тест.
    - архитектуру тестов старайтесь организовать так, чтобы работу по их написанию можно было распараллелить. Например если у Вас Page Object - один может писать компоненты из которых другой может строить сценарии.
    - ваш сервис сильно зависит от доступности источников данных - проверяйте доступность источников регулярно, особенно если эти данные вы получаете не по API, а выковыриваете парсером.
    - сделать тестовую базу данных - правильно. Автоматизируйте ее свертывание-развертывание через контейнеры.
    - по приоритетам автоматизации - точно так же - по "абстрактной" значимости. Хороший источник для идей - багтрекер. Кластеризуйте ошибки по типам и делайте выводы.
    - не делайте автоматизацию ради автоматизации - в первую очередь чините продукт, потом тесты.
    - не усложняйте тесты ради того чтобы они справлялись с более сложными условиями, упрощайте условия.
    - автотесты будут сыпаться по непонятным причинам. Делайте как можно более полезное логгирование. Если тесты выполняются в произвольном порядке - это тоже может быть одной из причин. Любой рандом в тестировании - зло. Учитывайте это при наполнении тестовой базы данных. Желательно, чтобы тестовая база всегда содержала одинаковые данные. Смотря что у Вас за база. Если это только пользователи это одно, а если у вас там хранятся аггрегированные данные, то нужно время от времени пересобирать тестовую базу из свежих источников и проверять работу тестировочных скриптов с ней.
    - автоматизацию тестирования можно применять не только для тестирования конечного продукта, можно тестировать миграции схемы базы данных, восстановление базы из бекапа и прочее.

    Можете почитать мои ответы по этому хабу, может найдете там еще ответы на какие-то близкие Вам вопросы.
    Вот некоторые из моих советов-ответов более-менее общей направленности:

    Как добиться независимости в тестах (phpunit)?
    Правильное тестирование Javascript?
    Как систематически подойти к тестированию в малой компании разработчиков?
    С чего начать изучение на должность QA автоматизатора?
    Как создать отдел тестирования?
    Какие шаги тестирования сайта?

    Читайте:
    "Lessons Learned in Software Testing" (Kaner, Bach, Pettichord)
    "Experiences of Test Automation: Case Studies of Software Test Automation" (Graham, Fewster)
    и вот эту вики: TestAutomationPatterns (Кстати, ее инициатор и редактор та же Dorothy Graham. Есть даже пару записей ее лекций на ютубе - советую глянуть)
    В ней прям шаблоны. Проблема - решение. Бесценная вещь. Мне в свое время очень помогло, чтобы понять "что не так" и как это лечить.
    Ответ написан
    Комментировать
  • Как разбить число на разряды в twig?

    BoShurik
    @BoShurik Куратор тега Symfony
    Symfony developer
    1 комментарий
  • Как убрать элемент с яндекс.карт?

    forgotten
    @forgotten
    Руководитель разработки API Яндекс.Карт
    Выношу из комментов:

    В документации нет removeControl ;)
    Вообще элементы управления удаляются через map.controls.remove('searchControl').
    Но в вашем случае, насколько я понимаю, достаточно задать список нужных контролов прямо в конструкторе карты.
    https://tech.yandex.ru/maps/jsbox/2.1/customSet_co...
    https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...
    Хотя я не очень понимаю, зачем убирать стандартные элементы управления.
    Ответ написан
    1 комментарий
  • Как удалить из определенного столбца таблицы строку по шаблону?

    suguby
    @suguby
    программист, python, django, mysql, git, hg, linux
    для поиска таких строк заюзать REGEXP https://dev.mysql.com/doc/refman/5.5/en/regexp.html
    для удаления текста - пытаться найти подходящую функцию dev.mysql.com/doc/refman/5.6/en/string-functions.html - и мне кажется этого не сделать...

    Всего лучше - написать скрипт на любимом ЯП: выбрать ID строки с заменяемым текстом + сам текст, обработать текст regexp-ами (на python - модуль re), обновить БД по ID.
    Ответ написан
    Комментировать