没有参数的鼻子main()会产生奇怪的行为

时间:2013-11-28 22:16:21

标签: python flask nose flask-script flask-testing

我有一个Flask应用程序,我正在使用Flask-Script和Flask-Testing。基本上我有一个manage.py文件,如下所示:

from flask.ext.script import Manager
from app import app, db

manager = Manager(app)

@manager.command
def test():
    import nose
    nose.main()

if __name__ == '__main__':
    manager.run()

我的应用树看起来像:

app/
tests/
    __init__.py
    test_one.py
manage.py

__init__.py只包含一些使Flask-SQLAlchemy在测试中起作用的东西,test_one.py只包含一个空的测试函数。

奇怪的是:当我运行python manage.py test时,它开始执行一些奇怪的测试(我相信来自Python本身的测试)。 如果我将nose.main()更改为nose.main(argv=['']),我的测试会被正确发现并且一切顺利。

使用普通nose.main()

有什么问题

1 个答案:

答案 0 :(得分:2)

sys.argvargv时,Nose将会显示None,我认为当您像python manage.py test那样运行它时会传递给sys.argv