2017-02-16 13 views
1

私はpytestに渡すtestfixturesのテストを取得しようとしているが、テストモジュールのいくつかのテストを返すtest_suiteと呼ばれる関数を定義するold patternを使用します。pytestを定義したら、test_suite()を尊重する方法は?

def test_suite(): 
    return TestSuite((
     DocTestSuite(setUp=setUp, tearDown=tearDown), 
     makeSuite(LogCaptureTests), 
     )) 

pytestがこれを収集しようとすると、それが失敗しました文句を言うと:

WC1 /Users/chris/vcs/git/testfixtures/testfixtures/tests/test_logcapture.py cannot collect test class 'TestSuite' because it has a __init__ constructor 

代わりにテストを収集するにはどうすればよいですか?

答えて

0

残念ながら、私はpytestにその古いパターンと協力することができるとは確信していません。 を定義するクラスはすべて収集されていないintentional design choiceです。それ以外の場合は設定できないと思います。

より「pytesthonic」のアプローチは、あなたがそれらをしたい場合は、直接コマンドラインで、のdoctestを含めるオプションを使用することです:

pytest --doctest-modules 

または構成ファイル:

[pytest] 
addopts = --doctest-modules 

あなたはあなたがpytestランナーを喜んで使う場合はfixturesを使用し、unittestやnoseなどの他のランナーを使用する場合はさらにtraditional set up and tear downを使用してコンテキストを制御できます。

+0

これらはdoctestではないことに気づいています:http://pythonhosted.org/manuel/ –

+0

おそらく、 'manuel'のpytestプラグインを書くのはいい時期です。 – wim

関連する問題