4

我有一个结构像这样的项目:

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

我目前正在使用nosewith运行我的测试

nosetests                   \
    --all-modules           \
    --traverse-namespace    \
    --with-coverage         \
    --cover-tests           \
    --with-doctest          \
    --where test/

但是,它不会doctests从我的project源目录运行(但从doctests测试目录运行是可以的,因为test_foo_doctest通过了)。

  1. 这是打电话的好方法nose吗?
  2. 如何doctestsproject目录 运行
    • 使用nose
    • 不改变目录结构
    • 没有在project目录中运行测试
4

1 回答 1

2
  1. 这是调用鼻子的好方法,但是有一个小问题会阻止您的文档测试运行。见#2

  2. 更改--where test/--where . 假设您从project/project. 这样鼻子会看到文档测试。现在它只在测试/

于 2013-02-28T15:52:12.507 回答