我的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