从python代码

时间:2016-12-20 22:42:34

标签: python pytest

我正在编写一个Python脚本,用于在不同条件下从运行测试中收集数据。目前,我有兴趣添加对Py.Test的支持。

Py.Test文档明确指出支持在Python代码中运行pytest:

  

您可以直接从Python代码调用pytest ...就像从命令行调用“pytest”一样......

但是,documentation没有按照规定详细描述调用pytest.main()的返回值。该文档似乎只表明如何阅读调用测试的退出代码。

通过此界面可以获得的数据解析限制是什么?此方法是否只返回一个表示测试结果的字符串?是否支持更友好的数据结构(例如,分配给键,值对的每个测试用例的结果)?

更新 :检查REPL中的返回数据结构显示调用pytest.main会产生一个整数返回类型,指示系统退出代码并指示副作用(详细说明测试结果的文本流)到标准输出。考虑到这种情况, Py.Test是否提供了一个替代接口,用于访问从python代码中通过一些本机数据结构(例如字典)运行的测试结果?我想避免捕获和解析std.out结果,因为这种方法似乎容易出错。

1 个答案:

答案 0 :(得分:0)

我不这么认为,官方文档告诉我们pytest.main 返回一个os错误代码,如示例中所述。 here

如果您愿意,可以使用pytest标志,甚至是回溯(--tb)选项,看看这些标记中是否有一些可以帮助您。

关于 解析std.out结果的另一点,因为这种方法似乎容易出错。 这真的取决于你在做什么。 Python有许多软件包,例如subprocess