是否有可能将启动参数传递给setup.py测试

时间:2019-08-11 12:19:15

标签: python-3.x testing arguments setuptools setup.py

我的python项目的配置项有问题,该项目是与服务器通信的python API。为了能够并发运行构建,必须将服务器端口传递给python setup.py test命令。例如python setup.py test --port 1337。有可能做到这一点吗?

目前,我有一个setup.py文件,并使用unittest进行测试,但是我完全可以使用鼻子等其他框架。重要的是在通过setup.py文件触发测试时传递端口!

编辑: 使用鼻子测试时,我遇到了无法传递自定义命令的问题。如果我的setup.cfg看起来像这样:

[nosetests]
with-xunit=1

我可以使用命令python setup.py nostests --with-xunit调用测试,而不会出现问题。但是,如果我尝试添加自定义参数(例如端口):

[nosetests]
port=1

并尝试执行 我可以使用命令python setup.py nostests --port=1337调用测试 我收到以下错误error: option --port not recognized 我该怎么做才能完成这项工作?

EDIT2: 我已经通过使用argpaser完成了。这是一个简单的示例setup.py文件,显示了它的工作方式:

import argparse
import sys

argparser = argparse.ArgumentParser(add_help=False)
argparser.add_argument('--port', help='required port argument', required=True)
args, unknown = argparser.parse_known_args()
sys.argv = [sys.argv[0]] + unknown
print(args)



from setuptools import setup


setup(
    version='1.0',
    description='example',
    author='example',
    author_email='example@example.net',
)

这可以通过python setup.py test --port 1337

执行

0 个答案:

没有答案