在 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
)。但是,Statistics/Call Graph
显示生成的 pstat 文件的视图是空的,并且显示Nothing to show
.
我希望看到test_something
和的分析信息my_function
。我究竟做错了什么?
编辑1:如果我将文件名更改为不以开头的文件名test_
,删除unittest.TestCase
并插入一个__main__
方法调用my_function
,我终于可以在没有py.test的情况下运行cProfile,我看到了结果。
但是,我正在做一个包含大量测试的大型项目。我想直接分析这些测试而不是编写额外的分析脚本。有没有办法调用py.test
测试发现模块,以便我可以递归地检索项目的所有测试?(这个unittest
发现是不够的,因为我们在生成器函数中产生了很多参数化的测试,这些测试是不被 识别的unittest
)。这样我至少可以只用 1 个额外的脚本来解决问题。