tl.testingはテストを書くときに使用できるさまざまなユーティリティを提供しています これは、Pythonのバージョン2.6および2.7に対応しています。
のディレクトリとファイルのサンドボックスの
ディレクトリとファイルを変更するコードをテストする場合、それは容易にディレクトリ及びファイルのサンプルツリーを作成し、検査することができることは有用である。 tl.testing.fsモジュールは、テキスト記述からツリーを作成する同じ形式で一覧表示し、それ自体の後にクリーンアップするためのサポートを提供します。
docの試験では、これらの施設は、ディレクトリ、ファイルやシンボリックリンクを作成し、リストに次のように使用されることがあります。
>>> tl.testing.fs輸入new_sandbox、LSから
>>> new_sandbox( "" "
... Dのfoo
... Fはfoo /バー空自
... Lのバズ - > fooの/バー
... "" ")
>>> LS()
Lのバズ - > fooの/バー
D fooの
Fはfoo /バー空自
セットアップして、ファイル·システム·サンドボックスを使用してテストを取り壊すする方法など、さらなるアドバイスのソースコードで見つかったファイルのfs.txtを参照してください。
のの呼び出し可能なスクリプトをインストールする
1テストしたいかもしれないいくつかの機能は、ポケットベルやテキストエディタなどの外部プログラムを使用しています。 tl.testing.scriptモジュールは、試験対象のコードがそれらを見つける場所でシンプルなモックスクリプトをインストールユーティリティを提供します。彼らは、Pythonコードの文字列を取り、テストのと一致するようにPythonパスを設定し、コードを実行するラッパースクリプトを作成します。
これは、このようなモックスクリプトはdocのテストで使用する方法です。
>>> tl.testing.scriptインポートからインストール
>>> script_path =( "印刷"簡単なスクリプトを。 '")をインストール
>>>印刷オープン(script_path).read()
#!...
輸入SYS
sys.pathのの[:] = [...]
印刷「簡単なスクリプト。」
>>>インポートサブプロセス
>>>サブ= subprocess.Popen(script_path、シェル= trueの場合、標準出力= subprocess.PIPE)
>>>標準出力、標準エラー出力= sub.communicate()
>>>印刷標準出力
簡単なスクリプト。
モックスクリプトを使用してテストを取り壊すする方法をインストールするには、どのようにさらなる可能性のためのソースコードで見つかったファイルのSCRIPT.TXTを参照してくださいモックスクリプトにアクセスだけでなく、。
のDOC-テストカイロ表面のグラフィックコンテンツをの
それはPythonのコードで2カイロ面の内容を比較するために単純明快ですが、グラフィックスを扱うことのdocテストを超えています。しかし、マヌエルパッケージは自然な方法でドキュメント試験でそれらを混合すること可能にしながら、テキスト文書から、より一般的なテストケースを抽出することができる。
tl.testing.cairoモジュールは、再編·テキストの数字として処方さグラフィカルなテストを実行するためにマヌエルを使用してテストスイートの工場を提供しています。そのような図のキャプションは、その値がカイロ面であるリテラルPythonの式であるとすると、その画像は、テストの期待として使用されます。
これは、表面がDOC試験で予想される画像と比較されるかもしれないかである:
>>>輸入カイロ
>>> pkg_resources輸入resource_filenameから
>>>画像= resource_filename( 'tl.testing'、 'testimages / correct.png')
..フィギュア:: TL /テスト/ testimages / correct.png
  `` cairo.ImageSurface.create_from_png(画像) ``
さらにアドバイスや可能性テスト出力のドキュメンテーションのソースコードで見つかったファイルのcairo.txtを参照してください。
のテストコード内のスレッドでの作業の
標準のTestCaseクラスは、メイン1以外のスレッドで発生したエラーや障害があった場合に収集しません。スレッドが取り残さ報告、テスト出力で印刷されるのスレッドで予想される未処理の例外を防止:tl.testing.threadモジュールは、スレッドクラスとまさにそれを可能にするためにThreadAwareTestCaseクラスだけでなく、スレッドを扱う試験のためのいくつかの他の便利さを提供しますテスト、、デーモン·スレッドでコードを実行中のスレッドに参加し、カウントすることにより、スレッドは、テストの実行時に開始しました:
>>>インポート時
>>>輸入tl.testing.thread
>>>クラスSampleTest(tl.testing.thread.ThreadAwareTestCase):
...
... DEF(自己)test_error_in_thread_should_be_reported:
... tl.testing.thread.ThreadJoiner(1):
... self.run_in_thread(ラムダ:1/0)
...
... DEF test_active_count_should_count_only_new_threads(自己):
... tl.testing.thread.ThreadJoiner(1):
... self.run_in_thread(ラムダ:time.sleep(0.1))
... self.assertEqual(1、self.active_count())
... self.assertEqual(0、self.active_count())
>>>インポートユニットテスト
>>>ラン(unittest.makeSuite(SampleTest))
================================================== ====================
ERROR:test_error_in_thread_should_be_reported(__builtin __ SampleTest。)
-------------------------------------------------- --------------------
トレースバック(最新の呼び出し最後):
  ...
とZeroDivisionError:ゼロによる整数除算やモジュロ
-------------------------------------------------- --------------------
N.NNNsで2テストを実施しました
FAILED(エラーは= 1)
ThreadAwareTestCaseクラスの詳細については、ソースコードで見つかったthread.txtファイルを参照してください。
のマヌエルを使用したテストスイートを構築する
マヌエルは、標準のdoctestに加えて、いくつかの強力な機能を提供したように、マヌエル·テスト·スイートは少し異なり、標準的なものとは設定されている。 tl.testing.doctestモジュールは、標準的な1のように使用することができれDocFileSuite工場を実装しますが、非推奨を使用して行われるために使用する脚注を解釈する能力をマヌエルを使用してテストスイートを作成し、それらの間で、マヌエルに関連するいくつかの追加の設定が可能にzope.testing.doctest:
>>> sample_txt =書き込み( 'sample.txtの'、 "" "
... [#footnote] _
... >>> X
... 1
...
... .. [#footnote]
... >>> X = 1
... "" ")
>>> tl.testing.doctest輸入れDocFileSuiteから
>>>ラン(れDocFileSuite(sample_txt、脚注= TRUE))
-------------------------------------------------- --------------------
N.NNNsに1テストを実行しました
OK
>>> sample_txt =書き込み( 'sample.txtの'、 "" "
... ..コードブロック::パイソン
... X = 1
...
... >>> X
... 1
... "" ")
>>>輸入manuel.codeblock
>>>ラン(れDocFileSuite(sample_txt、マヌエル= manuel.codeblock.Manuel()))
-------------------------------------------------- --------------------
N.NNNsに1テストを実行しました
OK
の要件の
- のPythonます。
コメントが見つかりません