0

我想在我的 setup.py 文件中为我的项目的多个测试命令编写一个别名。

但是,当我尝试在一行上运行多个命令时,当在其他命令之前调用“nosetests”命令时,我遇到了问题。

这有效

$ python setup.py lint nosetests
pylint output
nosetests output

但是如果我交换命令,我只会得到nosetests输出。

我认为lint命令被鼻子测试参数解析器吃掉了。

$ python setup.py nosetests lint
nosetests output
# No pylint output

所以,我想知道是否有办法明确分离命令?

谢谢

4

1 回答 1

0

新答案

从表面上看,setuptools假设所有选项都以 开头,--并且所有命令都不以 开头--,因此没有明确的方法来分隔命令,因为它是不必要的。

如果自定义nosetests命令lint作为一个选项被接受,那么这是该命令中的一个错误,它应该忽略任何不以--.

但是,使用传统的 Unix 习惯用法来指示选项的结束可能会解决该错误--,因此以下可能有效...

$ python setup.py nosetests -- lint

...否则您要么必须修复错误,要么找到使用该特定自定义命令的替代方法。

旧答案

文档...

的基本用法setup.py是:

$ python setup.py <some_command> <options>

...所以听起来它在您的第一个示例中执行这两个命令的事实是一个错误或侥幸。

将它们作为两个单独的命令运行可能是最安全的......

$ python setup.py nosetests && python setup.py lint
nosetests output
pylint output
于 2013-04-29T13:04:41.317 回答