2

最近、Python での単体テストと doctest の組み合わせに関する問題に直面しました。他の方法でこの問題を回避しましたが、まだ疑問があります。

Python の doctest モジュールは、モジュール内の docstring を解析し、各行の先頭で ">>> " に続くコマンドを実行し、その出力と docstring の出力を比較します。

doctest モジュールで実装されているその比較方法を、必要なときに使用できるのだろうかと思います。doctest をテスト ケースとしてテスト スイートに追加できることはわかっていますが、ここでは単一のテスト ケース内で実行したいと考えています。

それは次のようなものです:

class MyTest(TestCase):
    def testIt(self):
        # some codes like self.assertEqual(...)
        output = StringIO()
        with StdoutCollector(output):
            # do something that uses stdout
        # I want something like this:
        doctest.compare_result(output.getvalue(), 'expected output')
        # do more things

doctest はいくつかのヒューリスティックを使用して、省略記号などの出力を比較するためです。

誰かがアイデアや提案をしてくれませんか?

4

1 に答える 1

2

見るdoctest.OutputChecker.check_output()

于 2009-06-13T13:00:27.557 に答える