测试软件包未提供的功能

时间:2019-01-07 16:14:24

标签: python unit-testing

我的包装布局如下(as recommended here):

 module/
   lib/
     __init__.py
     module.py
     util.py
   tests/
     env.py
     test_util.py

文件util.py包含一个实用程序功能f(),该功能在程序包中多次重复使用。它不向用户公开,因为它在包的上下文之外没有意义,但是为它编写单元测试确实有意义。

文件env.py包含以下几行:

import os
import sys

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

如何设置我的软件包以使单元测试可以访问util.f

更新:在评论中前后往复并进行了一些测试之后,看来还可以通过添加以下内容将lib目录添加到系统路径:

    sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
env.py

可以解决问题。但是,这似乎破坏了相对进口。我现在可以没有相对的进口,但这是建立单元测试的标准/稳健方法,还是从长远来看会打破?

0 个答案:

没有答案