使用单独的测试文件运行pytest

时间:2017-10-16 13:29:42

标签: python pytest

我有the pytest good integration practices guide建议的目录结构,如下所示:

.
src/
    mypkg/
          __init__.py
          mypkg.py
tests/
      __init__.py
      test_mypkg.py

__init__.py个文件都是空的,其他文件如下:

mypkg.py

def foo(x):
    """
    Show x.
    >>> foo(5)
    x is 5
    >>> foo("hello")
    x is hello
    """
    return "x is {0}".format(x)

test.py

from mypkg import *
def test_foo():
    assert foo(5) == "x is 5"

当我从根目录运行pytest时,我得到:

tests\test_foo.py:1: in <module>
    from mypkg import *
E   ModuleNotFoundError: No module named 'mypkg'

建议的方法是什么?

2 个答案:

答案 0 :(得分:0)

我不是pytest专家,但这看起来像conftest.py的任务,conftest允许一个人从模块/软件包/共享夹具中加载测试,等等...

有关更多信息,请参见this page

答案 1 :(得分:-1)

py不知道mypkg.py的路径。所以你需要使用以下两行来告知

import sys
sys.path.append("/path/to/src/mypkg")