【问题标题】:Running serverless offline as integration tests on CI离线运行无服务器作为 CI 上的集成测试
【发布时间】:2020-07-23 15:59:09
【问题描述】:

使用无服务器离线在我的 CI 上运行集成测试是个好主意吗?

我在 AWS 上,我想测试 Lambda SQS 集成。

我的 Lambda 从 API 网关读取,我知道它是在无服务器离线上模拟的。

const JEST_SLS_OFFLINE_URL = localhost:3000 // Default sls offline url

describe('Version endpoint ', () => {
  const fetchUser = async () => {
    const url = `${String(JEST_SLS_OFFLINE_URL)}/user/123`
  }
  test('Should fetchUser', async () => {
    expect(await fetchUser()).toBe('')
  })
})

另一种方法是在 AWS 上启动一个新的无服务器功能(针对每个 PR),这非常消耗资源

【问题讨论】:

    标签: serverless-framework serverless


    【解决方案1】:

    我不认为这是一个正确或错误的答案——人们有点用这个来创造他们的偏好,但我认为是的,这很好。这就是我为集成测试所做的。我还用 DynamoDb 启动了一个 docker。但是,对于 SQS,您将不得不模拟 - 对于集成测试,我启动一个简单的服务器并模拟调用/响应 - 我为 SQS、SNS、Cognito 和其他一些在无服务器中不可用的东西执行此操作离线或不提供我想要的测试框架类型。您可以查看我的 answers 之一关于模拟 Cognito - 同样的过程适用于非常方便的每个 AWS 服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-15
      • 2021-01-31
      • 1970-01-01
      • 2019-02-24
      • 2017-08-07
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多