有没有办法获得python';s nose模块在__________________________________?
我不知道如何让nose模块的有没有办法获得python';s nose模块在__________________________________?,python,nose,nosetests,Python,Nose,Nosetests,我不知道如何让nose模块的\uuuuu主\uuuu处理程序工作。我在测试模块的末尾有以下内容: if __name__ == "__main__": import nose nose.main() 这给了我: ---------------------------------------------------------------------- Ran 0 tests in 0.002s OK 但如果我通过命令行运行相同的东西,它会找到测试并执行它们: MacBook
\uuuuu主\uuuu
处理程序工作。我在测试模块的末尾有以下内容:
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)
----------------------------------------------------------------------
剪断
我一直在尝试向nose.main()传递不同的参数,但我找不到任何有效的方法。我是不是错过了一些很明显的东西
谢谢您需要通过传递假命令行参数直接使用
nose.core.TestProgram
。但我不确定是否会在您使用的同一模块中找到您的测试我建议检查两件事:
if __name__ == '__main__':
import nose
nose.run(defaultTest=__name__)
确保您的源文件遵循适当的命名约定:(详见本节)
一、 例如,必须将“_Test”附加到我的所有源文件中。
然后,您只需要这个参数(假设您的main位于测试的根):
我试过:
nose.run(defaultTest=__name__)
正如前面的回答所暗示的,但出于某种原因,它对我不起作用。我必须做这两件事才能让它工作
希望能有帮助
编辑:
顺便说一下,我打电话给你
nose.run()
或
也没有明显的区别。为了子孙后代,我用的是:
如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu':
进口鼻
run(argv=[\uuuuu文件\uuuuuu'--with doctest','-vv'])
--with doctests
也将在同一文件中执行您的doctests。方法如下:
if __name__ == '__main__':
import nose
nose.runmodule()
奇怪的是,我不能从Aquamacs上运行这个。Aquamacs不会为写入缓冲区的临时文件设置文件变量。为nose提供文件名是明智的。我遇到了奇怪的错误,好像它试图将它所在的函数解释为一个模块名。这在功能上似乎等同于
nose.runmodule(argv=['nose','--with doctest','-vv'])
nose.run()
nose.main()
if __name__ == '__main__':
import nose
nose.runmodule()