且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-11-16 22:53:10

可以通过pip给setup.py传递一个参数:

You can pass a parameter to setup.py via pip:

--安装选项提供给 setup.py 安装命令的额外参数(使用类似 –install-option="–install-scripts=/usr/local/bin").使用多个 –install-option 选项将多个选项传递给 setup.py install.如果您使用带有目录路径的选项,请务必使用绝对路径.

--install-option Extra arguments to be supplied to the setup.py install command (use like –install-option="–install-scripts=/usr/local/bin"). Use multiple –install-option options to pass multiple options to setup.py install. If you are using an option with a directory path, be sure to use absolute path.

pip install --install-option test

会发出

setup.py test

那么你需要 setup.cfg 在与 setup.py 相同的目录中:

then You need setup.cfg in the same directory as setup.py:

# setup.cfg
[aliases]
test=pytest

示例 setup.py:

sample setup.py:

# setup.py
"""Setuptools entry point."""
import codecs
import os

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup


CLASSIFIERS = [
    'Development Status :: 5 - Production/Stable',
    'Intended Audience :: Developers',
    'License :: OSI Approved :: MIT License',
    'Natural Language :: English',
    'Operating System :: OS Independent',
    'Programming Language :: Python',
    'Topic :: Software Development :: Libraries :: Python Modules'
]

dirname = os.path.dirname(__file__)

long_description = (
    codecs.open(os.path.join(dirname, 'README.rst'), encoding='utf-8').read() + '\n' +
    codecs.open(os.path.join(dirname, 'CHANGES.rst'), encoding='utf-8').read()
)

setup(
    name='your_package',
    version='0.0.1',
    description='some short description',
    long_description=long_description,
    long_description_content_type='text/x-rst',
    author='Your Name',
    author_email='your@email.com',
    url='https://github.com/your_account/your_package',
    packages=['your_package'],
    install_requires=['pytest',
                      'typing',
                      'your_package'],
    classifiers=CLASSIFIERS,
    setup_requires=['pytest-runner'],
    tests_require=['pytest'])