#python #amazon-web-services #unit-testing #aws-lambda #pytest
#питон #amazon-веб-сервисы #модульное тестирование #aws-лямбда #пробный тест #python #aws-lambda #pytest
Вопрос:
Есть ли какой-либо способ, которым мы можем выполнить модульное тестирование функций в AWS lambda-функции с помощью pytest?
Предположим, у меня есть лямбда-функция, подобная следующей:
def func1(x,y):
return x y
def func2(x,y):
return x-y
def handler(event,context):
x = event["x"]
y = event["y"]
def func3(x,y):
return x*y
print(func1(x,y))
print(func2(x,y))
print(func3(x,y))
Прошу прощения за чрезмерную простоту функций. Я хотел бы провести модульное тестирование с использованием pytest для этих функций func1
, func2
и func3
.
Есть ли какой-нибудь способ, которым я могу сделать это в AWS lambda?
Ответ №1:
В представленном вами коде нет ничего особенного.
Это правда, что def handler(event,context):
является точкой входа в lambda, но остальные функции — это просто обычные функции python, которые вы можете написать и протестировать.
UT не будет запускаться при развертывании lambda в AWS. Они могут выполняться на компьютере разработчика или в CI / CD env.
Комментарии:
1. Спасибо. Я хотел знать, могу ли я запускать эти pytest в AWS lambda, а не с компьютера разработчика.
2. У меня есть конвейер, в котором некоторые функции динамически создаются на ходу. Я хотел бы также провести модульное тестирование этих функций на ходу. Если бы я мог запустить pytest в lambda, я мог бы поместить эти лямбды в один конвейер и работать с ним.
3. Я думаю, вы можете это сделать. 1) вам нужно упаковать pytest с вашим lambda 2) вам нужно вызвать pytest программно из обработчика.
4. Я новичок в этой области. Я могу упаковать pytest в свой lambda. Не могли бы вы, пожалуйста, помочь мне в программном вызове pytest из обработчика?
5. Смотрите docs.pytest.org/en/latest /…