有没有办法让Python的nose模块在__main__和命令行中表现相同?
我不太确定怎么让nose模块的__main__
处理器正常工作。我在我的测试模块最后加了这个:
if __name__ == "__main__":
import nose
nose.main()
结果是:
----------------------------------------------------------------------
Ran 0 tests in 0.002s
OK
但是如果我通过命令行运行同样的东西,它能找到测试并执行它们:
MacBook-Pro:Storage_t meloam$nosetests FileManager_t.py
............E..
======================================================================
ERROR: testStageOutMgrWrapperRealCopy (WMCore_t.Storage_t.FileManager_t.TestFileManager)
----------------------------------------------------------------------
SNIP
----------------------------------------------------------------------
Ran 15 tests in 0.082s
FAILED (errors=1)
我试着给nose.main()传递不同的参数,但找不到任何有效的。难道我漏掉了什么很明显的东西吗?
谢谢
5 个回答
7
nose.runmodule 是一个很好的选择:
if __name__ == '__main__':
import nose
nose.runmodule()
8
在编程中,有时候我们需要处理一些数据,比如从一个地方获取信息,然后把这些信息放到另一个地方。这个过程就像是把水从一个杯子倒到另一个杯子一样。
有些时候,我们会遇到一些问题,比如数据格式不对,或者数据不完整。这就像是你想把水倒进一个有洞的杯子,水会漏出来,最后你可能什么都得不到。
为了避免这些问题,我们可以使用一些工具或者方法来检查数据,确保它们是正确的。就像在倒水之前,先检查一下杯子有没有破损。
总之,处理数据的时候要小心,确保每一步都做对,这样才能得到想要的结果。
if __name__ == '__main__':
import nose
nose.run(defaultTest=__name__)
9
为了将来参考,这就是我使用的内容:
if __name__ == '__main__':
import nose
nose.run(argv=[__file__, '--with-doctest', '-vv'])
这里的 --with-doctests
选项会在同一个文件中运行你的文档测试。