Azure 是否有类似于LocalStack for AWS 的模拟框架?请理解,我不是在寻找 SDK 模拟,而是资源堆栈模拟。
如此之多,以至于我可以用项目中的实际 Azure 资源替换本地 Azure 堆栈的配置,并且功能将保持不变。很像它与 Localstack 的工作方式。
我发现 Azure Cloud Fabric 最接近这一点,但它与 Visual Studio IDE 紧密结合。
Azure 是否有类似于LocalStack for AWS 的模拟框架?请理解,我不是在寻找 SDK 模拟,而是资源堆栈模拟。
如此之多,以至于我可以用项目中的实际 Azure 资源替换本地 Azure 堆栈的配置,并且功能将保持不变。很像它与 Localstack 的工作方式。
我发现 Azure Cloud Fabric 最接近这一点,但它与 Visual Studio IDE 紧密结合。
尽管 Azure 中没有等效的 LocalStack,但 Microsoft 发布了三个可以在本地运行的模拟器来帮助进行集成测试:
Azure Functions Core Tools是 Azure Functions Runtime 的本地版本,允许您在本地执行 Azure 函数而无需部署它们。
Azure Storage Emulator,Azure 存储的本地模拟器。
Cosmos DB Emulator,CosmosDB 的本地模拟器。
上述三个可以为您提供大量集成测试覆盖率,但是,由于 Azure Functions、AWS Lambda 和大多数现代 Web 堆栈甚至非无服务器都已转向使用服务,而不仅仅是使用软件模块,这是在集成之间实现完全对等的唯一方法测试和生产环境是自动创建和拆除真实的付费服务。
在 Azure 上进行端到端/集成测试的秘诀:
上述方法依赖于真实的服务来提供测试而不是模拟的服务,测试的东西非常接近你在生产中部署的东西。每次运行测试时都会产生使用费。如果这是一个问题,请首先在管道中使用单元测试和模拟器集成测试,并为此级别的测试添加人工检查/不同的管道,您只能在推送到生产之前执行该测试。
Azure Slots也可能值得一看。
现在https://github.com/azure/azurite还提供了一个 docker https://hub.docker.com/_/microsoft-azure-storage-azurite