可以只需要一个软件包来进行测试,而不需要安装吗?

sel*_*yth 4 python unit-testing pip pandas

我正在向现有的可pip安装的项目中添加功能,项目所有者认为我pandas对setup.py安装要求的添加“太繁琐”,因为该项目应保持精简。我添加不需要的功能pandas(由于功能上的顶部操作pandas.DataFrame对象),但单元测试我写它需要调用pandassetUp测试数据帧与发生变异。

有什么方法pandas仅要求单元测试吗?还是我只是不将其添加到需求中,并pandas在运行该单元测试时引发错误以手动安装?

wim*_*wim 5

是的,它很简单setuptools

# setup.py
from setuptools import setup

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

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

pip install --editable .[dev]
Run Code Online (Sandbox Code Playgroud)

  • 我认为`tests_require`是更好的方法,因为这会创建一个可选功能,这些功能在生产中将永远不可用。 (2认同)
  • Python封装世界中的许多东西都坏了,而“ tests_require”可以说是其中之一。我没有发现`dev` extras标签是一个hack,相反,我发现它更灵活,功能更强大。 (2认同)