- 他の言語で読む場合はこちら: English, 日本語
- フルレンダリングされたドキュメントはこちら: http://stestr.readthedocs.io/en/latest/
- プロジェクトのコードは GitHub にあります: https://github.com/mtreinish/stestr
Note
stestr v2.x.x リリースシリーズは、Python 2 をサポートする最後のシリ ーズとなります。Python 2.7のサポートは「stestr リリース 3.0.0」 にて打ち切られました。
stestr は、パラレル Python テスト実行プログラムであり、一つのテストスイート を、分割実行するために、複数プロセスを使い、 unittest テストスイートを、 実行するようデザインされています。また、実行失敗のデバッグや実行速度改善に向け たスケジューラ最適化のために、すべてのテスト実行履歴を保存しています。この目標 達成のため、stestrでは、 subunit プロトコルを使用し、ストリーミングや、 複数ワーカーからの結果を保存することを容易にしています。
stestr は、元々 testrepository プロジェクトのフォークとして始まりました。 しかし、subunit を使用する testrepository のようなあらゆるテストランナー インターフェースとなる代わりに、stestr は、python プロジェクトに特化・集中 したテストランナーです。stestr は、元々 testrepository からフォークしました が、testrepository との後方互換性はありません。高いレベルでの基本的な実行 コンセプトは、それら2つのプロジェクトの間で共有されているものの、実際の使用法 は、完全に同一というわけでありません。
stestr は、pypi 経由で利用可能です。そのため、以下を実行するだけで:
pip install -U stestr
あなたのシステムに、stestr を取得することができます。もし、開発バージョンの stestr を使う必要があれば、リポジトリをクローンし、ローカルにインストール することができます:
git clone https://github.com/mtreinish/stestr.git && pip install -e stestr
この操作で、stestr をあなたの python 環境のローカル開発環境に対し、編集可能 モードでインストールできます。
stestr のインストール後、テスト実行のために使う方法は、とても簡単です。まずはじめに、
.stestr.conf
ファイルをあなたのプロジェクトのために作成します。この
ファイルは、「どこにテストがあるのか」「どうやってテストを実行する
のか」という基本的な情報を stestr に伝えます。基本最小限の内容例としては次の
ようなものとなります:
[DEFAULT] test_path=./project_source_dir/tests
この記述は、テスト探索のために使われるディレクトリの相対パスを、stestr に伝え
ます。これは、標準的な unittest discovery の --start-directory
と
同様です。
あるいは、tox を使用している場合は、tox.ini ファイルを使用してstestrを構成できます。 たとえば:
[stestr] test_path=./project_source_dir/tests
と設定すれば、stestr を使い始めるためにやるべきことはすべて完了です。テストを実行するためには、 単に次のように使うだけです:
stestr run
これにより、まず、結果を保持するためのリポジトリが、カレントワーキング
ディレクトリの .stestr/
に作成され、テスト探索により見つかったテストが
すべて実行されます。もし、あなたが、単にひとつのテスト(あるいはモジュール)を
実行し、テスト探索によるオーバーヘッドを避けたいのであれば、--no-discover
もしくは -n
オプションをそのテストに対して指定し、実行することにより
可能です。
これらのコマンドの詳細は、さらなるオプションの説明は、stestr マニュアルを 参照してください: https://stestr.readthedocs.io/en/latest/MANUAL.html
もし、testrepository を既に使用しているプロジェクトを持っているのであれば、
stestr のソースリポジトリには、あなたのリポジトリを stestr を利用するように
移行するための、ヘルパースクリプトがあります。このスクリプトは、単に、
.testr.conf
ファイルから、 .stestr.conf
ファイルを作成します。
(標準的な subunit.run テストコマンド形式を利用していることを想定しています)
これを実行するためには、あなたのプロジェクトリポジトリで、以下を実行します:
$STESTR_SOURCE_DIR/tools/testr_to_stestr.py
これにより、 .stestr.conf
が作成されます。
stestr マニュアルは、htmlと同様に、manpage としてもレンダリングするために整形 されています。html 出力物と自動生成され公開されているものはこちらです: https://stestr.readthedocs.io/en/latest/MANUAL.html しかしながら、その manpage は、手動で生成する必要があります。このためには、手動で sphinx-build コマンドを manpage builder とともに実行する必要があります。これは、簡単なスクリプトで 自動化されており、 stestr リポジトリのルートディレクトリで以下を実行します:
tools/build_manpage.sh
これにより、troff ファイルが doc/build/man/stestr.1 に作成され、それは、 パッケージ可能で、あなたのシステムの man page としても配置可能です。
最新コードの参照: https://github.com/mtreinish/stestr
最新コードのクローン: git clone https://github.com/mtreinish/stestr.git
コントリビューションのガイドラインドキュメント: http://stestr.readthedocs.io/en/latest/developer_guidelines.html
パッチを出すためには、github pull requests を使用してください。
プルリクエストを出す前には、手元の環境で tox
を実行して、すべての自動
テストがパスすることを確認してください。これは、CI環境で実行されるものと同様の
テストスイートならびに、自動スタイルチェックを実行します。もし、あなたの変更に
より、CI が fail となった場合、その変更はマージすることができません。
GitHub でのやり取りに加え、stestr の IRC チャネルもあります:
OFTC の #stestr チャネル
stestr に関する質問、もしくは議論をしていますので、気軽に参加してください。