Python 在不预先导入包的情况下拥有测试子包

Python 在不预先导入包的情况下拥有测试子包,python,nose,Python,Nose,我有以下目录结构 package __init__.py module1 model1.py tests __init__.py common.py test_module1 test_model1.py 我需要: 有地方放置测试的常用“助手”,例如共享数据。我目前正在使用common.py。我认为这需要在tests路径中有一个\uuuu init\uuuu,这样测试文件就可以导入公

我有以下目录结构

package
    __init__.py
    module1
        model1.py
    tests
        __init__.py
        common.py
        test_module1
            test_model1.py
我需要:

  • 有地方放置测试的常用“助手”,例如共享数据。我目前正在使用
    common.py
    。我认为这需要在
    tests
    路径中有一个
    \uuuu init\uuuu
    ,这样测试文件就可以导入公共文件
  • 在运行测试之前不要导入
    package
    ,因为我需要测试configs是否正确加载(因此需要在导入
    package
    并测试其configs之前更改环境变量)。如果
    tests
    是一个包(即,如果测试中有
    \uuuu init\uuu
    ),Nosetests似乎坚持导入
  • 有没有办法做到这一点?或者我应该改变我的设置?我可以直接在
    包中使用
    common
    ,尽管这看起来很尴尬


    一个涉及到这个问题的问题:

    \uuu init\uuuuuuuuuuuuupy
    放在哪里有什么不对,不管你把
    common.py
    放在哪里,你的测试目录需要有
    \uuuuu init\uuuuuuuuuuuuupy
    否则nose将无法从
    测试目录中发现测试