2

プロジェクトで py.test を使用し、ほとんどのテスト ケースでフィクスチャを使用します。しかし、doctest ファイルでフィクスチャを使用する可能性はありません。

いくつかのコード スニペットで例を挙げると、次のような conftest.py にブラウザー フィクスチャがあります。

@fixture
def browser(request):
    from wsgi_intercept import zope_testbrowser
    browser = zope_testbrowser.WSGI_Browser()
    [...]
    return browser

ファイル test_browser.txt で次のように使用します。

>>> browser.open('some_url')
>>> browser.url == 'some_url'
True

しかし、フィクスチャを doctest ファイルに入れる方法がわかりません。これはpy.testでまったく可能ですか?

4

2 に答える 2

3

現時点ではサポートされていません。pytest は、収集時にどのフィクスチャが doctest で使用されるかを知る必要があります。どのフィクスチャが使用されるかを宣言する方法を考え出すことができれば、サポートを追加する_pytest/doctest.py のは難しくないはずです。おそらく、doctest が必要とするフィクスチャを自動的に見つけることも可能です。

于 2012-12-06T23:11:07.963 に答える
2

pytest リポジトリでこれを実装しようとするプル リクエストがあります。これは、doctest ファイルに 2 つのグローバルを提供します。つまり、および(これは の便利なショートカットです)。使用目的は次のとおりです。fixture_requestget_fixturefixture_request.getfuncargvalue

>>> browser = get_fixture('browser')
>>> browser.open('some_url')

これは、上記の Holger によって提案された行とは異なりますが.. pytest-fixtures: ...、実装する方が簡単でした... :) 言うまでもなく、もちろん議論の余地があります!

于 2013-01-30T20:31:04.430 に答える