Nose不会从导入的模块运行doctests

时间:2013-02-26 13:11:51

标签: python nose doctest

我有一个类似结构的项目:

my_project_with_tests/
  project/
    __init__.py
    module.py
  test/
    test.py

module.py包含两个doctest' ed函数:

def foo():
  """
  >>> foo()
  1
  """
  return 1

def test_foo_doctest():
    """
    >>> module.foo()
    1
    """
    pass


def bar():
  """
  >>> bar()
  """
  return 1

test.py包含运行测试所需的位:

import sys
import os.path
sys.path = [os.path.abspath("../project")] + sys.path


import module


def test_foo():
    assert module.foo() == 1


def test_bar():
    assert module.bar() == 1

我目前正在使用nose

运行我的测试
nosetests                   \
    --all-modules           \
    --traverse-namespace    \
    --with-coverage         \
    --cover-tests           \
    --with-doctest          \
    --where test/

但是,它不会从我的doctests来源目录运行project(但是doctests来自测试目录的test_foo_doctest是正常的,因为nose通过了。

  1. 这是拨打doctests的好方法吗?
  2. 如何从project目录运行nose
    • 使用project
    • 而不更改目录结构
    • 未在{{1}}目录中运行测试

1 个答案:

答案 0 :(得分:2)

  1. 这是一个很好的方式来调用鼻子,但是有一个小问题阻止了你的doctests运行。见#2

  2. 假设您从--where test/运行命令,请将--where .更改为project/project。那样鼻子会看到医生。现在它只是在看test /

相关问题