Setuptools - 当测试不在主目录中时如何运行unittest测试套件?

时间:2018-01-06 11:33:26

标签: python unit-testing testing setuptools python-unittest

我有以下模块结构:

main
->module
--->tests
----->test_module.py
--->module.py
->setup.py

我使用unittest包实现了单元测试。在关注此answer后,我将setup.py文件设置为:

from setuptools import setup

setup(
    name='module',
    packages=['module', ],
    test_suite='module/tests',
)

产生以下错误消息:

  

=============================================== =======================错误:tests(unittest.loader._FailedTest)   -------------------------------------------------- -------------------- ImportError:导入测试模块失败:测试Traceback(大多数   最近的呼叫最后):文件   " /opt/conda/lib/python3.6/unittest/loader.py" ;,第153行,在   loadTestsFromName       module = import (module_name)ModuleNotFoundError:没有名为' tests / module'

的模块            

在0.000秒内进行1次测试

     

FAILED(错误= 1)测试失败:错误:测试失败:   

设置test_suite='tests时我已经:

  

=============================================== =======================错误:tests(unittest.loader._FailedTest)   -------------------------------------------------- -------------------- ImportError:导入测试模块失败:测试Traceback(大多数   最近的呼叫最后):文件   " /opt/conda/lib/python3.6/unittest/loader.py" ;,第153行,在   loadTestsFromName       module = import (module_name)ModuleNotFoundError:没有名为' tests'

的模块            

在0.000秒内进行1次测试

     

FAILED(错误= 1)测试失败:错误:测试失败:   

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

test_suite是测试的名称(用Python点缀语法),而不是目录路径,因此语法必须是

test_suite='module.tests',