可以用Pytest运行Robot框架的unittests吗?

2024-05-16 04:23:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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多个单元测试。E、 现在你必须在RF的repo的utest文件夹中运行python run.py来执行所有的单元测试。所以我真正要求的是如何修改运行.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)

尤其是:

^{pr2}$

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


Tags: runpy文件夹框架docsifpytestrobot
1条回答
网友
1楼 · 发布于 2024-05-16 04:23:51

答案很简短:是的!:))

长话短说:我只编辑了两行运行.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,测试运行:))

^{pr2}$

显然,有更多的东西是pytest不需要的运行.py可能会被消灭。。。但我不是python专家(还没有)

相关问题 更多 >