从 python 代码内部调用 pytest
calling pytest from inside python code
我正在编写一个 Python 脚本,用于在不同条件下从 运行ning 测试中收集数据。目前,我有兴趣添加对 Py.Test.
的支持
Py.Test 文档明确指出 运行ning pytest inside Python code is supported:
You can invoke pytest from Python code directly... acts as if you would call “pytest” from the command line...
但是documentation并没有详细描述调用pytest.main()
的return值。该文档似乎仅指示如何读取调用测试的退出代码。
通过此接口可用的数据分辨率有哪些限制?这个方法只是 return 一个表示测试结果的字符串吗?是否支持更友好的数据结构(例如,分配给键值对的每个测试用例的结果)?
Update:检查 REPL 中的 return 数据结构表明调用 pytest.main
会产生一个整数return 指示系统退出代码的类型并将副作用(详细说明测试结果的文本流)定向到标准输出。考虑到这种情况,是否 Py.Test 提供了一个替代接口,用于通过某些本机数据结构(例如字典)从 python 代码中访问测试结果 运行 ? 我想避免捕获和解析 std.out 结果,因为这种方法似乎容易出错。
我不这么认为,官方文档告诉我们 pytest.main
returns 示例中描述了 os 错误代码。
here
如果你愿意,你可以使用 pytest 标志,甚至是回溯 (--tb
) 选项来查看某些os标记是否对你有帮助。
关于 解析 std.out 结果的另一点,因为该方法似乎容易出错。
这真的取决于你在做什么。 Python 有很多包可以做到这一点,例如 subprocess
。
我正在编写一个 Python 脚本,用于在不同条件下从 运行ning 测试中收集数据。目前,我有兴趣添加对 Py.Test.
的支持Py.Test 文档明确指出 运行ning pytest inside Python code is supported:
You can invoke pytest from Python code directly... acts as if you would call “pytest” from the command line...
但是documentation并没有详细描述调用pytest.main()
的return值。该文档似乎仅指示如何读取调用测试的退出代码。
通过此接口可用的数据分辨率有哪些限制?这个方法只是 return 一个表示测试结果的字符串吗?是否支持更友好的数据结构(例如,分配给键值对的每个测试用例的结果)?
Update:检查 REPL 中的 return 数据结构表明调用 pytest.main
会产生一个整数return 指示系统退出代码的类型并将副作用(详细说明测试结果的文本流)定向到标准输出。考虑到这种情况,是否 Py.Test 提供了一个替代接口,用于通过某些本机数据结构(例如字典)从 python 代码中访问测试结果 运行 ? 我想避免捕获和解析 std.out 结果,因为这种方法似乎容易出错。
我不这么认为,官方文档告诉我们 pytest.main returns 示例中描述了 os 错误代码。 here
如果你愿意,你可以使用 pytest 标志,甚至是回溯 (--tb
) 选项来查看某些os标记是否对你有帮助。
关于 解析 std.out 结果的另一点,因为该方法似乎容易出错。
这真的取决于你在做什么。 Python 有很多包可以做到这一点,例如 subprocess
。