有没有办法让python的鼻子模块在__main__和命令行中工作相同?

Per*_*cot 10 python nose nosetests

我不确定如何使鼻子模块的__main__处理程序工作.我在测试模块的末尾有这个:

if __name__ == "__main__":
    import nose
    nose.main()
Run Code Online (Sandbox Code Playgroud)

这给了我:

----------------------------------------------------------------------
Ran 0 tests in 0.002s

OK
Run Code Online (Sandbox Code Playgroud)

但它通过命令行运行相同的东西,它找到测试并执行它们:

MacBook-Pro:Storage_t meloam$nosetests FileManager_t.py 
............E..
======================================================================
ERROR: testStageOutMgrWrapperRealCopy (WMCore_t.Storage_t.FileManager_t.TestFileManager)
----------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

SNIP

----------------------------------------------------------------------
Ran 15 tests in 0.082s

FAILED (errors=1)
Run Code Online (Sandbox Code Playgroud)

我一直在玩通过不同的参数到nose.main()但我找不到任何有用的东西.我错过了一些非常明显的东西吗

谢谢

Dan*_*ner 9

为了后人的缘故,这就是我使用的:

if __name__ == '__main__':
    import nose
    nose.run(argv=[__file__, '--with-doctest', '-vv'])
Run Code Online (Sandbox Code Playgroud)

--with-doctests也将在同一个文件执行你的doctests.


sna*_*hoe 7

if __name__ == '__main__':
    import nose
    nose.run(defaultTest=__name__)
Run Code Online (Sandbox Code Playgroud)


Vin*_*ent 6

nose.runmodule是要走的路:

if __name__ == '__main__':
    import nose
    nose.runmodule() 
Run Code Online (Sandbox Code Playgroud)