Cosmos 模拟器在 Linux 上随机失败的测试
Cosmos Emulator randomly failing tests on Linux
我正在尝试 运行 Linux 上的 Cosmos 模拟器,运行 使用 SpecFlow 进行测试。
按照 these instructions 安装它并成功 运行 安装它之后,在我尝试 运行 它们的所有时间里,可变数量的测试随机失败。
失败的测试抛出 CosmosException
和 503 (Service Unavailable)
状态码。
所有这些测试在 Windows 上工作得很好,并且根据我 运行 它们的方式,通过终端或 VSCode,失败的次数不同。
问题出在文档中提供的 docker 命令上:
docker run -p 8081:8081 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -m 3g --cpus=2.0 --name=test-linux-emulator -e AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10 -e AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true -e AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=$ipaddr -it mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
更具体地说,使用此环境变量:
AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10
此分区计数太低,导致它放弃请求。按照 this Github thread 中的建议,将其增加到 20
,解决了问题。
为了安全起见,我还把--cpus
增加到3.0
,内存-m
增加到4g
。
编辑: 最终不得不增加到 40
。之后就再也没有坏过。
我正在尝试 运行 Linux 上的 Cosmos 模拟器,运行 使用 SpecFlow 进行测试。
按照 these instructions 安装它并成功 运行 安装它之后,在我尝试 运行 它们的所有时间里,可变数量的测试随机失败。
失败的测试抛出 CosmosException
和 503 (Service Unavailable)
状态码。
所有这些测试在 Windows 上工作得很好,并且根据我 运行 它们的方式,通过终端或 VSCode,失败的次数不同。
问题出在文档中提供的 docker 命令上:
docker run -p 8081:8081 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -m 3g --cpus=2.0 --name=test-linux-emulator -e AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10 -e AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true -e AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=$ipaddr -it mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
更具体地说,使用此环境变量:
AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10
此分区计数太低,导致它放弃请求。按照 this Github thread 中的建议,将其增加到 20
,解决了问题。
为了安全起见,我还把--cpus
增加到3.0
,内存-m
增加到4g
。
编辑: 最终不得不增加到 40
。之后就再也没有坏过。