我一直在使用鼻子测试来运行我的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)

10-07 18:59