#python #unit-testing #testing #automated-tests
#питон #модульное тестирование #тестирование #автоматизированные тесты
Вопрос:
Все правила, касающиеся модульных тестов, гласят, что каждый тест должен быть читаемым, быстрым и независимым. Однако иногда при тестировании функции, выполнение которой занимает много времени, например функций конвейера ML, таких как функции, связанные с обработкой данных и прогнозированием данных, тестирование может быть довольно медленным. В этих конкретных случаях, как я мог бы протестировать его, следуя надлежащей практике тестирования, если каждый тест займет много времени для обработки, даже если вводится меньше данных, чем обычно, и когда издеваются над уже протестированными функциями?
Подводя итог, как протестировать такие функции, связанные с процессором, как эта:
def test_a(): r = foo() #cpu-bound ... assert(...) ... def test_z(): r = foo() #cpu-bound ... assert(...)
Могу ли я даже избежать его вычисления в тех случаях, когда параметры не изменятся?
r = foo() def test_a() assert(...) ... def test_z() assert(...)
Комментарии:
1. Я бы сказал, используйте приспособление для модуля или сеанса, если вы используете pytest, но я не уверен, что вы используете для тестирования. Ваш код либо является псевдокодом, либо использует какой-либо другой тестовый фреймворк, кроме unittest и pytest.