【发布时间】:2015-09-01 11:32:29
【问题描述】:
在 PyCharm 中,我将 py.test 设置为默认测试运行器。
我有一个简单的测试用例:
import unittest
import time
def my_function():
time.sleep(0.42)
class MyTestCase(unittest.TestCase):
def test_something(self):
my_function()
现在我通过右键单击文件并选择 Profile 'py.test in test_profile.py' 来运行测试。
我在控制台中看到测试成功运行(它显示collected 1 items)。但是,显示生成的 pstat 文件的 Statistics/Call Graph 视图是空的,显示为 Nothing to show。
我希望看到test_something 和my_function 的分析信息。我做错了什么?
编辑 1:
如果我将文件名更改为不以test_开头的名称,删除unittest.TestCase并插入一个__main__调用my_function的方法,我终于可以在没有py的情况下运行cProfile .test 我看到了结果。
但是,我正在处理一个包含大量测试的大型项目。我想直接分析这些测试而不是编写额外的分析脚本。有没有办法调用py.test test-discovery 模块,以便我可以递归地检索项目的所有测试? (unittest 的发现是不够的,因为我们在生成器函数中产生了很多 unittest 无法识别的参数化测试)。这样我至少可以只用 1 个额外的脚本来解决问题。
【问题讨论】:
标签: python pycharm pytest cprofile