Size: a a a

testing_in_python

2020 November 30

G

George in testing_in_python
норм
источник

В

Виталий in testing_in_python
Благодарю)
источник
2020 December 02

АК

Александр Кот... in testing_in_python
«pytest mark package»/directory
существует ли более элегантное решение, чтобы маркировать всю директорию одной маркой, чем это

https://stackoverflow.com/a/57046943/8091236
?

мне оно кажется громоздким, но другого не смог найти, может тут знают то, чего я не смог найти в гугле?
источник

СС

Сказочный Сникерс... in testing_in_python
Александр Кот
«pytest mark package»/directory
существует ли более элегантное решение, чтобы маркировать всю директорию одной маркой, чем это

https://stackoverflow.com/a/57046943/8091236
?

мне оно кажется громоздким, но другого не смог найти, может тут знают то, чего я не смог найти в гугле?
базовый класс который любым способом помаркает все тесты отнаследованные от него
источник

СС

Сказочный Сникерс... in testing_in_python
метакласс, фикстура с инлайн маркером
источник

СС

Сказочный Сникерс... in testing_in_python
на твой выбор)
источник

АК

Александр Кот... in testing_in_python
Сказочный Сникерс
базовый класс который любым способом помаркает все тесты отнаследованные от него
есть ли еще более элегантный вариант, чтобы не переносить все функции в методы классов?)

я знаю например как маркать модуль, но как маркнуть всю директорию - не нашел
источник

СС

Сказочный Сникерс... in testing_in_python
нет
источник

СС

Сказочный Сникерс... in testing_in_python
либо хук как в линке, либо pytest_generate_tests что не особо имеет разницы с первым
источник

AM

Aleksei Moskvin in testing_in_python
Всем привет!
pytest + xdist
Есть 1 долгий класс, долгая там фикстура на класс
Хочу этот тест гарантированно прибить к отдельному процессу, чтобы тесты запустились сразу

Ссылка из закрепа, из 10го пункта не работает.
Нашел похожую проблему и решение вот тут: https://github.com/pytest-dev/pytest-xdist/issues/255
Но смущает несколько моментов: 1. Решение для общего шедулера, я использую scope по файлам и не очень понял как для него такое сделать. 2. Выглядит костыльно и рискует развалиться при первом удобном случае.

Может быть есть у кого идеи как по-другому к вопросу подойти?
источник

АК

Александр Кот... in testing_in_python
Aleksei Moskvin
Всем привет!
pytest + xdist
Есть 1 долгий класс, долгая там фикстура на класс
Хочу этот тест гарантированно прибить к отдельному процессу, чтобы тесты запустились сразу

Ссылка из закрепа, из 10го пункта не работает.
Нашел похожую проблему и решение вот тут: https://github.com/pytest-dev/pytest-xdist/issues/255
Но смущает несколько моментов: 1. Решение для общего шедулера, я использую scope по файлам и не очень понял как для него такое сделать. 2. Выглядит костыльно и рискует развалиться при первом удобном случае.

Может быть есть у кого идеи как по-другому к вопросу подойти?
У Pytest вроде есть фича order tests, я ее не юзал так что мало знаю, но может в ней есть способ выставить первым этот тест, тогда он гарантированно сможет стартовать в одном из потоков в первую очередь.
источник

AM

Aleksei Moskvin in testing_in_python
Такой фичи из коробки не нашел. Но есть такой вот плагин: https://github.com/mrbean-bremen/pytest-order
И даже работает между файлами
Попробую проверить как с xdist будет работать

Спасибо за наводку
источник

AM

Aleksei Moskvin in testing_in_python
А я правильно понимаю, что xdist в самом начале распихивает тесты по процессам и потом уже не перераспределяет их? От сюда и issue, которое я скидывал выше
То есть если воркеру достался долгий тест, то все кто за ним в этом же воркере, будут ждать, несмотря на то, что остальные воркеры может быть уже отдыхают

В этом случае order мне поможет, но не во всех случаях 🙁
источник

А

Алексей in testing_in_python
Aleksei Moskvin
А я правильно понимаю, что xdist в самом начале распихивает тесты по процессам и потом уже не перераспределяет их? От сюда и issue, которое я скидывал выше
То есть если воркеру достался долгий тест, то все кто за ним в этом же воркере, будут ждать, несмотря на то, что остальные воркеры может быть уже отдыхают

В этом случае order мне поможет, но не во всех случаях 🙁
xdist не умеет в оптимизации, он для простой параллелизации. Для кастомной надо переписать шедуллер в нем.
источник

СС

Сказочный Сникерс... in testing_in_python
Александр Кот
У Pytest вроде есть фича order tests, я ее не юзал так что мало знаю, но может в ней есть способ выставить первым этот тест, тогда он гарантированно сможет стартовать в одном из потоков в первую очередь.
это не прокатит
источник

AM

Aleksei Moskvin in testing_in_python
Да, вы правы, не прокатило :)
То есть сам способ сработал, тест запустился первым, но из-за того что в один воркер с ним попали и другие тесты, они стартовали сильно позже. В итоге общее время хоть и сократилось, но меньше чем могло бы
источник

СС

Сказочный Сникерс... in testing_in_python
Aleksei Moskvin
Да, вы правы, не прокатило :)
То есть сам способ сработал, тест запустился первым, но из-за того что в один воркер с ним попали и другие тесты, они стартовали сильно позже. В итоге общее время хоть и сократилось, но меньше чем могло бы
Переписывать планировщик
источник

СС

Сказочный Сникерс... in testing_in_python
Хдист на каждом воркере коллектит все тесты с учетом того же ордеринга. Затем мастер процесс формирует размер пачки, оптимальный по его мнению и столько тестов кидает на каждый воркер. Надо переписать эту логику и заставить его нужный тест запихнуть отдельно
источник

AM

Aleksei Moskvin in testing_in_python
Сказочный Сникерс
Хдист на каждом воркере коллектит все тесты с учетом того же ордеринга. Затем мастер процесс формирует размер пачки, оптимальный по его мнению и столько тестов кидает на каждый воркер. Надо переписать эту логику и заставить его нужный тест запихнуть отдельно
понял, спасибо
источник
2020 December 07

AB

Anatoly Bobunov in testing_in_python
Может кому интересно будет. Вчера новость увидел, но пока не успел потрогать либу.
https://pypi.org/project/atheris/
источник