使用xdist执行pytest测试后,如何汇总测试结果以发布到testrail?

时间:2019-07-18 15:02:23

标签: pytest testrail xdist

我遇到了这样的问题。我目前正在使用pytest来运行测试用例,并使用xdist来并行运行测试并将测试结果发布到TestRail来减少执行时间。问题是使用xdist时,pytest-testrail插件会为每个xdist工作者创建Test-Run,然后发布未测试的测试用例。

我尝试使用该钩子pytest_terminal_summary来防止pytest_sessionfinish插件钩子被多次调用。

我希望只创建一个测试运行,但是仍然创建多个测试运行。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但是发现了使用胶带的一种解决方法。 我发现,如果我们使用--tr-run-id键运行测试,则所有结果都将在测试运行中正确收集。 如果您使用jenkins作业来自动化流程,则可以执行以下操作: 1)使用testrail API创建testrun 2)获取此测试运行的ID 3)使用--tr-run-id = $ TEST_RUN_ID

运行测试

我使用了以下文档: http://docs.gurock.com/testrail-api2/bindings-python http://docs.gurock.com/testrail-api2/reference-runs

from testrail import *
import sys

client = APIClient('URL')
client.user = 'login'
client.password = 'password'

result = client.send_post('add_run/1', {"name": sys.argv[1], "assignedto_id": 1}).get("id")
print(result)

然后在詹金斯壳中

RUN_ID=`python3 testrail_run.py $BUILD_TAG`

然后

python3 -m pytest -n 3 --testrail --tr-run-id=$RUN_ID --tr-config=testrail.cfg ...