vcrpy 的 record_mode=None 是否保证即使在线程中发出请求也不会发送任何 HTTP 请求?
Does vcrpy's record_mode=None guarantee no HTTP requests will be sent even if the requests are made in a thread?
我正在使用 pytest 测试一些代码并使用 vcrpy 装饰器,如下所示:
@pytest.mark.vcr(record_mode='none')
def test_something():
make_requests_in_a_thread_and_save_to_queue()
logged_responses = log_responses_from_queue_in_a_thread()
assert logged_responses == expected_logged_responses
测试失败,因为 logged_responses
是新响应,它们是 test_something()
期间发出的新 HTTP 请求的结果。
我在正确的位置保存了一个磁带,但这可能无关紧要,因为即使我没有,我也应该得到一个 vcrpy CassetteError 而不是失败的测试。
record_mode='none'是否不适用于线程内执行的代码?
如果没有,我应该如何处理测试问题?谢谢!
我发现问题出在哪里了。我使用的是流 API 而不是发送 http 请求。 record_mode='none'
指的是http请求。
我正在使用 pytest 测试一些代码并使用 vcrpy 装饰器,如下所示:
@pytest.mark.vcr(record_mode='none')
def test_something():
make_requests_in_a_thread_and_save_to_queue()
logged_responses = log_responses_from_queue_in_a_thread()
assert logged_responses == expected_logged_responses
测试失败,因为 logged_responses
是新响应,它们是 test_something()
期间发出的新 HTTP 请求的结果。
我在正确的位置保存了一个磁带,但这可能无关紧要,因为即使我没有,我也应该得到一个 vcrpy CassetteError 而不是失败的测试。
record_mode='none'是否不适用于线程内执行的代码?
如果没有,我应该如何处理测试问题?谢谢!
我发现问题出在哪里了。我使用的是流 API 而不是发送 http 请求。 record_mode='none'
指的是http请求。