![](/img/trans.png)
[英]Is there a conftest.py pytest equivalent on Robot Framework
[英]Is it possible to run Robot Framework's unittests with Pytest?
Robot Framework 有一套很好的单元测试 ,使用Python的unittest模块实现 。 我想知道这些测试是否可以用Pytest运行,如果有人已经尝试过这样做的话。 至少Pytest的文档说它可以处理常规的Python单元测试 。
编辑:更准确。 我想用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中只编辑两行,并且对结果感到满意
import unittest
下面添加import pytest
编辑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专家(还)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.