moto_server 随着测试的进行,s3 变慢
moto_server s3 slows down as tests progress
我有一个包含约 1000 个测试的测试套件。以前我们使用的是 mock_s3 装饰器,它之所以起作用,是因为我们的 "integration tests" 只是从其他服务导入模块并模拟它们的功能。这一直是不受欢迎的,但直到最近才成为优先解决的问题。
我正在尝试在独立服务器模式下使用 moto,在 conftest.py 中使用
hackily 启动服务
def start_local_moto_server():
global moto_subprocess
moto_subprocess = subprocess.Popen(
['moto_server', 's3'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
bufsize=0, universal_newlines=True,
)
print 'Waiting for moto local service to start...'
while True:
moto_log = moto_subprocess.stderr.readline()
print moto_log
if 'Running' in moto_log:
break
boto3.resource(
's3', region_name='us-east-1', endpoint_url='http://127.0.0.1:5000'
).create_bucket(Bucket=TEST_S3_BUCKET_NAME)
随着测试的进行,对 s3 客户端的任何调用都变得越来越慢,直到最后我得到
ReadTimeoutError: Read timeout on endpoint URL: "http://localbox:5000/my-bucket/my/key/file.tar"
运行 这些测试单独导致所有测试都通过。
我真的不知道从哪里开始调试或了解问题,或者如何提供更多信息。有人可以帮忙找出问题吗?
moto 开发人员在此处提供的缓慢答案:https://github.com/spulec/moto/issues/2288
我有一个包含约 1000 个测试的测试套件。以前我们使用的是 mock_s3 装饰器,它之所以起作用,是因为我们的 "integration tests" 只是从其他服务导入模块并模拟它们的功能。这一直是不受欢迎的,但直到最近才成为优先解决的问题。
我正在尝试在独立服务器模式下使用 moto,在 conftest.py 中使用
hackily 启动服务def start_local_moto_server():
global moto_subprocess
moto_subprocess = subprocess.Popen(
['moto_server', 's3'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
bufsize=0, universal_newlines=True,
)
print 'Waiting for moto local service to start...'
while True:
moto_log = moto_subprocess.stderr.readline()
print moto_log
if 'Running' in moto_log:
break
boto3.resource(
's3', region_name='us-east-1', endpoint_url='http://127.0.0.1:5000'
).create_bucket(Bucket=TEST_S3_BUCKET_NAME)
随着测试的进行,对 s3 客户端的任何调用都变得越来越慢,直到最后我得到
ReadTimeoutError: Read timeout on endpoint URL: "http://localbox:5000/my-bucket/my/key/file.tar"
运行 这些测试单独导致所有测试都通过。
我真的不知道从哪里开始调试或了解问题,或者如何提供更多信息。有人可以帮忙找出问题吗?
moto 开发人员在此处提供的缓慢答案:https://github.com/spulec/moto/issues/2288