Pytest в AWS lambda

#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 /…