gpt4 book ai didi

selenium - Pytest Xdist 并行执行,防止重新创建数据库

转载 作者:行者123 更新时间:2023-12-04 12:25:39 24 4
gpt4 key购买 nike

我正在尝试通过使用 4 个线程的并行执行 (-n=4) 来加速我的 python Django Web 应用程序中的 Selenium 测试

在前 4 次测试中,3 次出现以下错误:

[test setup] [Test Error Output]
Got an error creating the test database: (1007, "Can't create database 'test1database'; database exists")

我知道我必须在并行测试执行之前指定要运行一次的设置,以防止多次尝试创建数据库,但是我将如何在 pytest xdist 配置中强制执行此操作?

最佳答案

您可能可以为每个线程使用不同的数据库。 worker_id fixture 允许你这样做
https://github.com/pytest-dev/pytest-xdist#identifying-the-worker-process-during-a-test

@pytest.fixture()
def test_database(worker_id):
return CreateDatabase("test{}database".format(worker_id))

更新

github issue comment显示了 OP 原始问题的解决方案。它还使用共享模板创建 N 个数据库。这带来了同步对 fixture 中共享资源的访问的有趣转折。

关于selenium - Pytest Xdist 并行执行,防止重新创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53430405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com