pytest:为函数指定多种命名约定

时间:2018-08-06 08:24:58

标签: python-3.x pytest

我想在一个类中测试函数,由于某种原因,我无法像 test _ * 这样命名它们。这是我的班级样子:

class SegmentationSuite:
    """Benchmark for segmentation routines in scikit-image."""
    def setup(self):
        self.image = np.random.random((400, 400, 100))
        self.image[:200, :200, :] += 1
        self.image[300:, 300:, :] += 0.5

    def time_slic_basic(self):
        segmentation.slic(self.image, enforce_connectivity=False)

    def peakmem_setup(self):
        pass

    def peakmem_slic_basic(self):
        segmentation.slic(self.image, enforce_connectivity=False)

因此,共有三组函数:time_*setuppeakmem。查看pytest文档后,我发现https://docs.pytest.org/en/latest/example/pythoncollection.html#changing-naming-conventions

因此,我创建了一个setup.cfg文件,并在其中添加了以下内容:

[tool:pytest]
python_files=benchmark_*.py
python_classes=*Suite
python_functions=time_*, setup, peakmem*

但它不起作用。

我该怎么做?

谢谢。

1 个答案:

答案 0 :(得分:1)

这就是我的做法 python_functions=time_* setup peakmem*。指定多个用空格分隔的glob模式。