如何使用“pip install”运行单元测试?

Ful*_*ica 5 python pip

在工作中,我们正在考虑为内部软件部署配置一个本地 pypi 存储库。使用“pip install”进行部署会很方便,但我担心应该在添加新包后执行单元测试以确保正确安装。我一直认为 pip 正在这样做,但我在 pip 文档中看不到任何与测试相关的内容。

bit*_*nox 3

您可以通过 pip 将参数传递给 setup.py:

\n\n

--install-option \n要提供给 setup.py install 命令的额外参数(例如 \xe2\x80\x93install-option=\xe2\x80\x9d\xe2\x80\x93install-scripts=/usr/local/ bin\xe2\x80\x9d)。使用多个 \xe2\x80\x93install-option 选项将多个选项传递给 setup.py install。如果您使用带有目录路径的选项,请务必使用绝对路径。

\n\n
pip install --install-option test\n
Run Code Online (Sandbox Code Playgroud)\n\n

将发行

\n\n
setup.py test\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么你需要 setup.cfg 与 setup.py 位于同一目录中:

\n\n
# setup.cfg\n[aliases]\ntest=pytest\n
Run Code Online (Sandbox Code Playgroud)\n\n

示例 setup.py:

\n\n
# setup.py\n"""Setuptools entry point."""\nimport codecs\nimport os\n\ntry:\n    from setuptools import setup\nexcept ImportError:\n    from distutils.core import setup\n\n\nCLASSIFIERS = [\n    \'Development Status :: 5 - Production/Stable\',\n    \'Intended Audience :: Developers\',\n    \'License :: OSI Approved :: MIT License\',\n    \'Natural Language :: English\',\n    \'Operating System :: OS Independent\',\n    \'Programming Language :: Python\',\n    \'Topic :: Software Development :: Libraries :: Python Modules\'\n]\n\ndirname = os.path.dirname(__file__)\n\nlong_description = (\n    codecs.open(os.path.join(dirname, \'README.rst\'), encoding=\'utf-8\').read() + \'\\n\' +\n    codecs.open(os.path.join(dirname, \'CHANGES.rst\'), encoding=\'utf-8\').read()\n)\n\nsetup(\n    name=\'your_package\',\n    version=\'0.0.1\',\n    description=\'some short description\',\n    long_description=long_description,\n    long_description_content_type=\'text/x-rst\',\n    author=\'Your Name\',\n    author_email=\'your@email.com\',\n    url=\'https://github.com/your_account/your_package\',\n    packages=[\'your_package\'],\n    install_requires=[\'pytest\',\n                      \'typing\',\n                      \'your_package\'],\n    classifiers=CLASSIFIERS,\n    setup_requires=[\'pytest-runner\'],\n    tests_require=[\'pytest\'])\n
Run Code Online (Sandbox Code Playgroud)\n