【问题标题】:Integration Test Azure TimerTrigger Function集成测试 Azure TimerTrigger 函数
【发布时间】:2020-01-23 14:02:14
【问题描述】:

集成测试 Azure TimerTrigger 函数的最佳方法是什么?

我有一个 Azure 函数,它将数据从 Oracle 表复制到 Azure SQL 表并通过 SendGrid 发送电子邮件。这是伪代码:

public static void Run(TimerInfo myTimer, ILogger log)
{
    Fecth_Data_From_Oracle_table()
    Insert_Data_To_AzureSQL_table()
    Send_StatusEmail_Via_SendGrid()
}

正如看到的函数没有返回任何东西,那么我将如何进行集成测试这个函数呢?

我是否将返回类型修改为 Task<IActionResult> 之类的东西,但随后我正在修改一些已经运行的代码并根据方法的结果返回一些 HTTP 代码?

我是否只使用 api 键和 HttpClient 类 f.x 从 Visual Studio 调用计时器触发函数。 GET https://myfunc01.azurewebsites.net/admin/functions/TimerTriggereFunc?code={key} 并断言其返回值? (这要求函数返回一些东西。)

Jeff Holan 提供了使用 System.Diagnostics.Process 类启动和停止 .NET Core CLI (dotnet.exe) 在本地集成测试 Azure Functions 的示例,该 CLI 反过来又通过 func 启动 Azure Functions 主机。 dll,但这似乎过于复杂。对托管在 Azure 中的 Azure Function 进行集成测试是错误的方法,还是必须在本地进行测试?

我似乎找不到明确的指导方针。

【问题讨论】:

  • 您的测试目的是什么?例如,如果您想确保您的“Insert_Data_To_AzureSQL_table”函数已成功运行,那么您应该检查它是否在您的数据库中插入了预期的数据。

标签: azure-functions integration-testing


【解决方案1】:

如果您想测试您的计时器触发功能,您可以在 azure 门户上创建功能时为其创建 Application Insights。它可以帮助您监控您的天蓝色功能,您可以使用“log.LogInformation”在计时器触发功能中打印您想要的任何内容。然后您可以单击功能中的“监控”按钮并查看它的日志。如果您想了解更多关于您的功能的信息,可以单击“实时应用指标”按钮。

【讨论】:

  • 我已经这样做了,但这是一个手动过程。进行集成测试将为我提供自动反馈。
猜你喜欢
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多