ジェネリックユニットを実行するプログラムを書いていますテストスケジューリング。現在のプログラムはモノスレッドのPerlプログラムですが、私はそれをモジュール化してテストを並列化するつもりです。私もPythonで書き直すことを検討しています。
ここで私は何をする必要があります:
- 私は以下の属性を持つテストのリストを持っています:
- uri:テストするURI(HTTP / HTTPS / SSH /ローカル)。
- 依存:このテストが依存するテスト/値の連想配列。
- join:このテストで処理する項目を選択するときに追加するDBジョイントのリスト。
- depends_db:このテストで処理する項目を選択するときにDB要求に追加する追加の条件。
- このプログラムは、依存関係のないテストから始まる依存関係ツリーを構築します。
- 各テストについて:
- 条件(テスト、ジョイント、depends_dbに依存する結果)を使用してデータベースからアイテムのリストが選択されます。
- 項目のリストはURIに送られます(POSTまたは標準入力を使用します)。
- テストされた各項目のテストの状態とコメントをリストしたYAMLファイルとして結果が取得されます。
- 結果はDBに保存されます。
- テストが戻り、依存するテストが実行されます。
- プログラムは実行されたテストのレポート(CSV、DB、graphviz)を生成します。
このプログラムの主な用途は、現在バックアップ、DNSなどのサービスに対して複数のマシンをテストします。テストは次のようになります。 - バックアップ:HTTPを介して呼び出されるバックアップマシンでホストされ、マシンのバックアップが正常に行われたかどうかを確認します。 - DNS:stdin経由で呼び出されたローカルマシン上でホストされ、マシン "fqdnが有効なDNSエントリを持っているかどうかをチェックします。
そのようなツール/モジュールはすでに存在していますか?これを達成するための最良の実装は何でしょうか(PerlまたはPythonを使用して)?
回答:
回答№1は4あなたがすでに書いたコードの大部分を保持するためにrjhの助言に従わないことにした場合は、テストを標準テストツールチェインを使用するように変換してください。
- つかいます テスト::クラス 友達が出す タップ.
- つかいます 証明する"s
-j
オプションまたは Test :: Aggregate テストを並行して実行できます。 - 証明を使用する
-a
オプションまたは App :: Prove :: History 結果を記録する。 - つかいます TAP :: Formatter :: HTML グラフィカルなレポートのために。