Robot命令无法选取并执行output.xml中的失败测试用例求助
解决Robot框架--rerunfailed参数无法选取失败用例的问题
问题现象
执行带--rerunfailed output.xml参数的Robot命令时,无法匹配到output.xml中记录的失败测试用例,报错提示找不到对应测试;移除该参数后,命令可正常运行。
报错命令及信息
/home/xxx/Documents/xxxx/AutoCode/VirEnv/bin/robot --rerunfailed output.xml -L TRACE --variable ENV:c4-test --variable RUN_ON_LOCALHOST:true --variable CONF: --variable BROWSER:chrome /home/xxx/Documents/xxxx/AutoCode/Automation/tests/*
错误输出:
[ ERROR ] Suite 'Debug & MasterData & Navigation & Security & SetUp & UserInterface' contains no tests matching name 'Debug.SecurityAdminPermissions.Verify Fail'. Try --help for usage information. Process finished with exit code 252
环境信息
操作系统
Ubuntu 20.04.10.11
依赖包版本
| 软件包名称 | 版本 |
|---|---|
| async-generator | 1.10 |
| attrs | 22.2.0 |
| bcrypt | 4.0.1 |
| beautifulsoup4 | 4.11.2 |
| certifi | 2022.12.7 |
| cffi | 1.15.1 |
| charset-normalizer | 3.1.0 |
| configparser | 5.3.0 |
| crqacore | 1.5.1 |
| crqarobot | 1.3.9 |
| cryptography | 39.0.2 |
| curlify | 2.2.1 |
| decorator | 5.1.1 |
| Dialogs | 1.0 |
| et-xmlfile | 1.1.0 |
| exceptiongroup | 1.1.0 |
| h11 | 0.14.0 |
| idna | 3.4 |
| importlib-resources | 5.12.0 |
| jsondiff | 2.0.0 |
| jsonpath-ng | 1.5.3 |
| jsonschema | 4.17.3 |
| namedlist | 1.8 |
| natsort | 8.3.1 |
| openpyxl | 3.1.2 |
| outcome | 1.2.0 |
| paramiko | 3.0.0 |
| pdfminer | 20191125 |
| pip | 22.3.1 |
| pkgutil_resolve_name | 1.3.10 |
| ply | 3.11 |
| pycparser | 2.21 |
| pycryptodome | 3.17 |
| PyMySQL | 1.0.2 |
| PyNaCl | 1.5.0 |
| pyOpenSSL | 23.0.0 |
| PyPDF2 | 3.0.1 |
| pyrsistent | 0.19.3 |
| PySocks | 1.7.1 |
| python-dateutil | 2.8.2 |
| pytz | 2022.7.1 |
| requests | 2.28.2 |
| retrying | 1.3.4 |
| robotframework | 6.0.2 |
| robotframework-databaselibrary | 1.2.4 |
| robotframework-jsonlibrary | 0.5 |
| robotframework-pabot | 2.14.0 |
| robotframework-pythonlibcore | 4.1.2 |
| robotframework-requests | 0.9.4 |
| robotframework-selenium2library | 3.0.0 |
| robotframework-seleniumlibrary | 6.0.0 |
| robotframework-stacktrace | 0.4.1 |
| robotremoteserver | 1.1.1 |
| selenium | 4.8.2 |
| setuptools | 65.5.1 |
| six | 1.16.0 |
| sniffio | 1.3.0 |
| sortedcontainers | 2.4.0 |
| soupsieve | 2.4 |
| sshtunnel | 0.4.0 |
| trio | 0.22.0 |
| trio-websocket | 0.9.2 |
| typing_extensions | 4.5.0 |
| urllib3 | 1.26.14 |
| wheel | 0.38.4 |
| wsproto | 1.2.0 |
| xlrd | 2.0.1 |
| xmldict | 0.4.1 |
| zipp | 3.15.0 |
排查与解决思路
- 验证用例路径匹配:检查
output.xml中记录的失败用例完整路径(套件名+用例名)是否与本地测试文件中的结构完全一致。错误提示中的用例名Debug.SecurityAdminPermissions.Verify Fail,要确认实际测试套件中是否存在该层级的用例,注意空格、特殊字符(如&)是否导致解析偏差。 - 确认output.xml有效性:确保
output.xml是最近一次测试运行生成的,未被篡改,打开文件查看<test>标签的name属性以及所属<suite>的name是否与报错信息中的内容匹配。 - 调整测试路径指定方式:命令中使用
/tests/*通配符可能导致Robot无法精准定位到包含失败用例的文件,尝试直接指定具体的测试文件路径,而非通配符。 - 转义特殊字符:如果套件名或用例名包含空格、
&等特殊字符,在命令行中需对其进行转义,例如用\转义空格,或给包含特殊字符的路径/名称添加引号。 - 版本兼容性检查:虽然基础命令可正常运行,但可确认Robot Framework 6.0.2版本的
--rerunfailed参数是否存在已知问题,必要时尝试升级/降级版本测试。
内容的提问来源于stack exchange,提问作者Narayan C L
相关产品推荐
相关产品推荐

