包装只能用于测试而不是安装吗?

时间:2017-02-11 18:41:27

标签: python unit-testing pandas pip

我正在为现有的可安装pip的项目添加功能,项目所有者认为我在setup.py安装要求中添加pandas是“太重了”,因为项目应该保持苗条。我正在添加的功能不需要pandas(因为功能是在pandas.DataFrame对象之上的操作),但我为它编写的单元测试需要调用pandas到{{ 1}}一个用。变异的测试DataFrame。

是否有某种方法只需要setUp进行单元测试?或者我只是不将它添加到需求中,并在运行单元测试时出现错误以手动安装pandas

2 个答案:

答案 0 :(得分:5)

是的,在setuptools中很简单:

# setup.py
from setuptools import setup

setup(
    name='your_app',
    ...
    install_requires=...
    extras_require={
        'dev': [
            'pytest', 'pandas', 'coverage',  # etc
        ]
    },
)

现在,当您在应用上进行开发时,请使用:

pip install --editable .[dev]

答案 1 :(得分:0)

对于setuptools,您可以使用与tests_require类似的方式使用install_requires来列出仅需要进行测试的软件包。

比照。 https://setuptools.readthedocs.io/en/latest/setuptools.html?highlight=tests_require