Python doctest は出力行の一​​部を無視できますか? 質問する

Python doctest は出力行の一​​部を無視できますか? 質問する

次のようなドキュメントテストを書きたいと思います:

"""
>>> print a.string()
          foo : a
          bar : b
         date : <I don't care about the date output>
          baz : c
"""

これを実行する方法はありますか? unittest に切り替える方が理にかなっていると思いますが、doctest のテストに一致しない出力の範囲を指定できるかどうかが気になります。

ありがとう!

ベストアンサー1

を使用するとdoctest.ELLIPSIS...「ここにある任意の文字列に一致する」という意味になります。doctestdoctestディレクティブでオプションを設定すると、1つのテストケースのみで有効になります。オンラインドキュメントは:

>>> print range(20) # doctest:+ELLIPSIS
[0, 1, ..., 18, 19]

doctest オプションを全体にわたってアクティブにしたい場合は、optionflags=使用する doctest 関数に引数として渡すことができます (例: ) doctest.testfile。(演算子を使用してビット OR 演算を行うことで、複数のオプション フラグを渡すことができます|)。

おすすめ記事