Облачная функция e2e - PullRequest
       53

Облачная функция e2e

0 голосов
/ 31 января 2019

Как мне написать e2e или интеграционный тест для облачной функции, до сих пор я мог использовать скрипт автоматизации bash, но при развертывании я не могу его легко обнаружить

gcloud functions deploy MyFunction --entry-point MyFunction --runtime go111 --trigger-http

1 Ответ

0 голосов
/ 31 января 2019

Bash является хорошей отправной точкой, как насчет использования некоторых инструментов тестирования e2e, например, с endly workflow e2e runner Ваш рабочий процесс развертывания может выглядеть следующим образом:

pipeline:
  deploy:
    action: exec:run
    comments: deploy HelloWord triggered by http
    target: $target
    sleepTimeMs: 1500
    terminators:
      - Do you want to continue
    errors:
      - ERROR
    env:
      GOOGLE_APPLICATION_CREDENTIALS: ${env.HOME}/.secret/${gcSecrets}.json
    commands:
      - cd $appPath
      - export PATH=$PATH:${env.HOME}/google-cloud-sdk/bin/
      - gcloud config set project $projectID
      - ${cmd[4].stdout}:/Do you want to continue/ ? Y
      - gcloud functions deploy HelloWorld --entry-point HelloWorld --runtime go111 --trigger-http
    extract:
      - key: triggerURL
        regExpr: (?sm).+httpsTrigger:[^u]+url:[\s\t]+([^\r\n]+)

  validateTriggerURL:
    action: validator:assert
    actual: ${deploy.Data.triggerURL}
    expected: /HelloWorld/
post:
  triggerURL: ${deploy.Data.triggerURL}

вы можететакже достигните того же с помощью вызовов API службы облачных функций

defaults:
  credentials: $gcSecrets
pipeline:
  deploy:
    action: gcp/cloudfunctions:deploy
    '@name': HelloWorld
    entryPoint: HelloWorldFn
    runtime: go111
    source:
      URL: ${appPath}/hello/

Наконец, вы можете ознакомиться с практическими примерами тестирования без сервера e2e (облачные функции, lambda, firebase, firestore, динамодат, pubsub, sqs, sns, bigquery и т. д.)...)

serverless_e2e

...