calltreetest中文_unittest无法发现/运行测试

有somerelated个问题,但都不适用。在

这是我的目录树:» tree abc_backend

abc_backend/

├── backend_main.py

├── FundDatabase.db

├── healthcheck.py

├── __init__.py

├── init.py

├── portfolio.py

├── private.py

├── __pycache__

├── questionnaire.py

├── recurring.py

├── registration.py

├── tests

│   ├── config.py

│   ├── __init__.py

│   ├── __pycache__

│   ├── test_backend.py

│   ├── test_healthcheck.py

│   └── test_private.py

├── trading.py

├── Users.db

├── VERSION

└── visualisation.py

unittest找不到任何内容:

^{pr2}$

甚至在abc_backend内也没有:abc_backend » python -m unittest tests

----------------------------------------------------------------------

Ran 0 tests in 0.000s

OK

我已经证实:我的测试方法命名正确(test_whatever)

我的测试用例扩展unittest.TestCase

abc_backend和abc_backend/tests目录有一个(空)__init__.py

所有测试模块都是可导入的(见下文)

unittest discover找到测试,但在相对导入方面有问题(见下文)

nose能够发现并运行测试,没有问题

我想了解:为什么我需要将discover传递给unittest来强制它发现测试?没有unittest子命令,unittest做什么?(我认为unittest在默认情况下会进行测试发现)。根据documentation:python -m unittest is the equivalent of python -m unittest discover一旦发现了测试(通过强制执行discover子命令),为什么会出现导入问题?在

测试模块是可导入的» python

Python 3.4.3 (default, Oct 14 2015, 20:28:29)

[GCC 4.8.4] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import abc_backend.tests

>>> import abc_backend.tests.test_private

>>> import abc_backend.tests.test_healthcheck

>>> import abc_backend.tests.test_backend

unittest discover与相对导入存在问题

如果我从上方向运行:top » python -m unittest discover abc_backend

======================================================================

ERROR: tests.test_private (unittest.loader.ModuleImportFailure)

----------------------------------------------------------------------

Traceback (most recent call last):

File "/usr/lib/python3.4/unittest/case.py", line 58, in testPartExecutor

yield

File "/usr/lib/python3.4/unittest/case.py", line 577, in run

testMethod()

File "/usr/lib/python3.4/unittest/loader.py", line 32, in testFailure

raise exception

ImportError: Failed to import test module: tests.test_private

Traceback (most recent call last):

File "/usr/lib/python3.4/unittest/loader.py", line 312, in _find_tests

module = self._get_module_from_name(name)

File "/usr/lib/python3.4/unittest/loader.py", line 290, in _get_module_from_name

__import__(name)

File "/foo/bar/abc_backend/tests/test_private.py", line 6, in

from .. import init

ValueError: attempted relative import beyond top-level package

如果我从abc_backend内运行它:abc_backend » python -m unittest discover tests

======================================================================

ERROR: test_private (unittest.loader.ModuleImportFailure)

----------------------------------------------------------------------

Traceback (most recent call last):

File "/usr/lib/python3.4/unittest/case.py", line 58, in testPartExecutor

yield

File "/usr/lib/python3.4/unittest/case.py", line 577, in run

testMethod()

File "/usr/lib/python3.4/unittest/loader.py", line 32, in testFailure

raise exception

ImportError: Failed to import test module: test_private

Traceback (most recent call last):

File "/usr/lib/python3.4/unittest/loader.py", line 312, in _find_tests

module = self._get_module_from_name(name)

File "/usr/lib/python3.4/unittest/loader.py", line 290, in _get_module_from_name

__import__(name)

File "/foo/bar/abc_backend/tests/test_private.py", line 6, in

from .. import init

SystemError: Parent module '' not loaded, cannot perform relative import

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值