Size: a a a

testing_in_python

2019 January 29

C

Chuprina Artem in testing_in_python
Vova
а он раннит тесты, разделив на n или каждый поток гоняет одни и те же тесты?
это какая-то магия, я так и не разобрался как он работает
источник

СС

Сказочный Сникерс in testing_in_python
Chuprina Artem
это какая-то магия, я так и не разобрался как он работает
он тупо запускает несколько инстансов пайтеста с разными наборами тестов
источник

V

Vova in testing_in_python
ну, все что я нашел, это pytest -n NUM
источник

C

Chuprina Artem in testing_in_python
вот как он эти наборы формирует, когда у меня n-файлов по m-тестов
источник

V

Vova in testing_in_python
и или я что то делаю нетак, но он ранил одни и теже тесты
источник

СС

Сказочный Сникерс in testing_in_python
Chuprina Artem
вот как он эти наборы формирует, когда у меня n-файлов по m-тестов
смотря как ты указал делить, есть опция —dist
источник

C

Chuprina Artem in testing_in_python
Chuprina Artem
вот как он эти наборы формирует, когда у меня n-файлов по m-тестов
вот это для меня магия
источник

СС

Сказочный Сникерс in testing_in_python
—dist=load это потестово
—dist=loadfile это пофайлово
источник

СС

Сказочный Сникерс in testing_in_python
все есть в доке же
https://pypi.org/project/pytest-xdist/
источник

СС

Сказочный Сникерс in testing_in_python
можно сделать each тогда все тесты будут бежать на каждом воркере
источник

V

Vova in testing_in_python
—dist вообще мимо прошел
источник

V

Vova in testing_in_python
спасибо)
источник

СС

Сказочный Сникерс in testing_in_python
под 10 пунктом в пине мой кастомный шедулер для load распределения
источник

FB

Foo Bar in testing_in_python
Foo Bar
Подскажите, плиз. Есть вот такая функция:
def get_objects(class_one: type, class_two: type) -> Tuple[instance_of_class_one, instanceof_class_two]:
Принимает два класса, и возвращает объекты этих классов
foo: Foo, bar: Bar = get_objects(Foo, Bar)

Можно написать так, чтобы для foo и bar типы автоматом выводились? Без необходимости явно указывать Foo, Bar
import typing


class A:
   def method(self):
       pass

class B:
   def method2(self):
       pass

class C(A, B):
   def method3(self):
       pass

T = typing.TypeVar('T', bound=A)
U = typing.TypeVar('U', bound=B)

def get_objects(cls_a: typing.Type[T], cls_b: typing.Type[U]) -> typing.Tuple[T, U]:
   return cls_a(), cls_b()


a, b = get_objects(A, C)
b.method3() # instance of C

разобрался, вот так, если кому-то интересно
источник

EB

Evgenii B in testing_in_python
А где тут реализуется требование  «без необходимости явно указывать типы»
источник

EB

Evgenii B in testing_in_python
Этот сниппет — проверка как работать с тайпхинтингом?

Потому что я не вижу как этот код не эквивалентен

‘’’
a,b = A(), C()
‘’’
источник

FB

Foo Bar in testing_in_python
Не нужно писать a: A, b: C = get_objects(A, C). Соответвенно ide/блокноты в которых тайпхинты поддержаны, могут выводить и делать тайпчекинг.
источник

FB

Foo Bar in testing_in_python
Evgenii B
Этот сниппет — проверка как работать с тайпхинтингом?

Потому что я не вижу как этот код не эквивалентен

‘’’
a,b = A(), C()
‘’’
Ну, это пример просто) В get_objects может быть что угодно, логгирование создания объекта, инициализация браузера, или еще что-нибудь.
источник
2019 January 30

AK

Anton Kachurin in testing_in_python
Существует ли возможность в аллюре в репорт включить тесты только из последнего рана? Так, чтобы не терялись данные прошлых ранов.

Например, у меня есть Р1: тест1, тест2, тест3 и Р2: тест2, тест4
После рана Р2 я хочу видеть в репорте только тест2 (+ 1 реран) и тест4
источник

СС

Сказочный Сникерс in testing_in_python
в истории все должно корректно отразиться
источник