azure - 如何集成测试Azure Web Jobs?

标签 azure integration-testing azure-storage azure-webjobs

我有一个 ASP.NET Web API 应用程序,支持 Azure Web 作业,其功能由 API Controller 添加到存储队列的消息触发。使用 OWIN 测试 Web API 非常简单,但如何测试 Web 作业?

我是否在测试运行器的内存中运行控制台应用程序?直接执行该函数(但这不是正确的集成测试)?这是一项连续的工作,因此应用程序不会退出。更糟糕的是,Azure Web 作业功能无效,因此没有可断言的输出。

最佳答案

无需在内存中运行控制台应用程序。您可以在集成测试的内存中运行 JobHost。

var host = new JobHost();

您可以使用host.Call() 或host.RunAndBlock()。您需要指向 Azure 存储帐户,因为 localhost 不支持 Webjobs。 这取决于您的函数正在执行的操作,但您可以手动将消息添加到队列、添加 blob 或其他任何内容。您可以通过查询 webjob 执行结果的存储等来进行断言。

关于azure - 如何集成测试Azure Web Jobs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39299808/

相关文章:

azure - 更新 SSL 证书后 AKS 上发生 CORS 错误

azure - 获取 Azure 存储容器中的 blob 计数

node.js - MS Azure Botframework 从对话中提取数据

asp.net-mvc-4 - Azure Blob 400 创建容器时的错误请求

java - Mockito 无法注入(inject)模拟

Maven跨项目集成

dataframe - AzureMachineLearningFileSystem 中的路径导入 Parquet

azure - Windows Azure SQL 脚本

azure - 添加计划 block 作为条件 if 语句

java - @ReplaceWithMock 与 @Qualifier