我一直在使用鼻子测试来运行我的python测试。但是,我的目录布局有点像这样:
|-- src
| `-- <bunch of c++ files>
|-- python
| |-- foo
| |-- bar.py
| `-- __init__.py
`-- tests
|-- __init__.py
`-- test_bar.py
当我从代码库的根目录运行
nosetests -w tests
时,nosetest无法按我的意愿将“ python”目录添加到sys.path中。如果我将“ python”目录重命名为“ lib”,则可以正常工作,但是我觉得这有点令人困惑!在nose documentation上,对象
nosetests.config.Config
具有以下条目:self.srcDirs = ('lib', 'src')
我认为解决我的问题的方法是将该元组设置为
('python')
。理想情况下,我仍然希望从命令行运行nosetests
,但将srcDirs配置选项设置为'python'。鼻子允许吗?我通过nosetests
的帮助进行了扫描,找不到任何相关设置。我尝试编写一个如下所示的配置文件nose.cfg
:[nosetests]
srcDirs=('python')
并运行
nosetests -c nose.cfg -w tests
,但显然这不是有效的配置设置。我还尝试跳过nosetests
并尝试自己的跑步者mynosetests.py
:import nose
nose.config.Config.srcDirs = ('python')
nose.main()
但显然
nose.config.Config
不能以这种方式进行编辑!我敢肯定这是可能的,但我有点迷茫。有人可以帮忙吗?谢谢! 最佳答案
想通了!以下似乎可以解决问题:
import nose
c = nose.config.Config()
c.srcDirs = ('python')
nose.run(config=c)