4

私はそのような構造を持つプロジェクトを持っています:

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

module.py2 つ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現在、 withを使用してテストを実行しています

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

ただし、ソース ディレクトリdoctestsからは実行されません(ただし、パスするため、テスト ディレクトリからは問題ありません)。projectdocteststest_foo_doctest

  1. これは良い呼び方noseですか?
  2. ディレクトリ doctestsから実行するにはどうすればよいですかproject
    • 使用してnose
    • ディレクトリ構造を変更せずに
    • projectディレクトリでテストを実行せずに
4

1 に答える 1

2
  1. これはnoseを呼び出すための良い方法ですが、doctestの実行を妨げる小さな問題があります。#2を参照

  2. からコマンドを実行すると仮定するように変更--where test/します。そうすれば、鼻はdoctestsを見るでしょう。現在、テスト中のみです/--where .project/project

于 2013-02-28T15:52:12.507 に答える