gpt4 book ai didi

python - 是否可以使用 Pytest 运行 Robot Framework 单元测试?

转载 作者:行者123 更新时间:2023-11-28 17:15:07 25 4
gpt4 key购买 nike

Robot Framework有一个great set of unit tests这是使用 Python 的 unittest module 实现的.我想知道这些测试是否可以用 Pytest 运行如果有人已经尝试这样做。至少Pytest's docu says that it can deal with regular Python unittest .

编辑:更准确地说。我想用 Pytest 而不是 Python 的 unittest 模块运行 Robot 自己的 1000 多个单元测试。例如。现在你必须在 RF 的 repo 的 utest 文件夹中运行 python run.py 来执行所有单元测试。所以我实际上要问的是如何修改 run.py 以便它使用 Pytest 框架而不是 unittest 框架?

我认为最棘手的部分在这里:

if __name__ == '__main__':
docs, vrbst = parse_args(sys.argv[1:])
tests = get_tests()
suite = unittest.TestSuite(tests)
runner = unittest.TextTestRunner(descriptions=docs, verbosity=vrbst)
result = runner.run(suite)
rc = len(result.failures) + len(result.errors)
if rc > 250:
rc = 250
sys.exit(rc)

尤其是:

suite = unittest.TestSuite(tests)
runner = unittest.TextTestRunner(descriptions=docs, verbosity=vrbst)

我已经可以通过将 pytest 指向具体的测试文件来运行单个测试,例如pytest utest/api/test_exposed_api.py。但是,如果我尝试使用 pytest utest/utest 文件夹中运行所有单元测试,我只会收到错误和警告:(

最佳答案

简短回答:是的! :)))

长答案:我只需要在 run.py 中编辑两行并且对结果几乎满意

  1. import unittest下添加import pytest
  2. 编辑 if __name__ == '__main__': 部分,使其看起来像这样:

    if __name__ == '__main__':
    docs, vrbst = parse_args(sys.argv[1:])
    tests = get_tests()
    pytest.main()

然后在 utest 文件夹中调用 python run.py 并运行测试:)))

    1532 passed, 45 warnings, 1 error in 9.70 seconds

显然在 run.py 中有更多的东西对于 pytest 来说不是必需的并且可以被清除......但我还不是 python 专家(还)

关于python - 是否可以使用 Pytest 运行 Robot Framework 单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44754756/

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