简体   繁体   English

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

[英]Nose main() with no arguments produces odd behavior

I have a Flask app and I am using Flask-Script and Flask-Testing. 我有一个Flask应用,正在使用Flask-Script和Flask-Testing。 Basically I have a manage.py file that looks like this: 基本上我有一个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()

My app tree looks like: 我的应用程序树如下所示:

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

__init__.py holds only some things that make Flask-SQLAlchemy things work in tests and test_one.py contains just an empty test function. __init__.py只包含使Flask-SQLAlchemy的东西在测试中test_one.py东西,而test_one.py仅包含一个空的测试函数。

The odd things is: When I run python manage.py test , it starts executing some wierd tests (I believe tests from Python itself). 奇怪的是:当我运行python manage.py test ,它开始执行一些奇怪的测试(我相信来自Python本身的测试)。 If I change nose.main() to nose.main(argv=['']) , my test is properly discovered and everything goes well. 如果将nose.main()更改为nose.main(argv=['']) ,则可以正确发现我的测试,并且一切顺利。

What's wrong with using the plain nose.main() ? 使用无nose.main()什么问题?

如果argvNone ,则鼻子将读取sys.argv ,我认为当您像将它传递给sys.argv python manage.py test一样运行它时,它会显示为sys.argv

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM