[解決済み] Python unittest: テストファイルの一部分だけを実行するには?
質問
私はかなり多くの時間を要するテストを含むテストファイルを持っています(それらはクラスタに計算を送信し、結果を待ちます)。これらはすべて特定のTestCaseクラス内にあります。
これらは時間がかかり、さらに壊れそうにないので、私はテストのこのサブセットが実行されるかどうか選択できるようにしたいと思います (最良の方法はコマンドライン引数、つまり " です)。
./tests.py --offline
"またはそのような何かで)、そうすれば、私はテストの大部分を頻繁に素早く実行し、全体セットは時間があるときにたまに実行することができます。
今のところ、私はただ
unittest.main()
を使ってテストを開始します。
どのように解決するのですか?
デフォルトの
unittest.main()
はデフォルトのテストローダーを使用して、main が実行されているモジュールから TestSuite を作成します。
このデフォルトの動作を使用する必要はありません。
例えば、3つの unittest.TestSuite のインスタンスを作成します。
-
fast"サブセットです。
fast = TestSuite() fast.addTests(TestFastThis) fast.addTests(TestFastThat)
-
slow"サブセットです。
slow = TestSuite() slow.addTests(TestSlowAnother) slow.addTests(TestSlowSomeMore)
-
セット全体です。
alltests = unittest.TestSuite([fast, slow])
FastとSlowを示すためにTestCaseの名前を調整したことに注意してください。 をサブクラス化することができます。 unittest.TestLoader のサブクラスを作成し、クラス名を解析して複数のローダーを作成することができます。
そして、メインプログラムはコマンドライン引数を optparse または argparse (2.7 または 3.2 以降で利用可能) を使って、実行したいスイート、速い、遅い、またはすべてを選択することができます。
あるいは、信頼できる
sys.argv[1]
が3つの値のうちの1つであることを信頼し、次のような単純なものを使うこともできます。
if __name__ == "__main__":
suite = eval(sys.argv[1]) # Be careful with this line!
unittest.TextTestRunner().run(suite)
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】典型的なテストディレクトリ構造でunittestを実行する
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] Django filter queryset __in for *every* item in list