stestr(日本語訳) =================== .. image:: https://github.com/mtreinish/stestr/actions/workflows/main.yml/badge.svg?branch=main :target: https://github.com/mtreinish/stestr/actions/workflows/main.yml :alt: CI Testing status .. image:: https://img.shields.io/codecov/c/gh/mtreinish/stestr?style=flat-square :target: https://codecov.io/gh/mtreinish/stestr :alt: Code coverage .. image:: https://img.shields.io/pypi/v/stestr.svg?style=flat-square :target: https://pypi.python.org/pypi/stestr :alt: Latest Version .. image:: https://img.shields.io/github/license/mtreinish/stestr.svg?style=flat-square :target: https://opensource.org/licenses/Apache-2.0 :alt: License * 他の言語で読む場合はこちら: `English`_, `日本語`_ * フルレンダリングされたドキュメントはこちら: http://stestr.readthedocs.io/en/latest/ * プロジェクトのコードは GitHub にあります: https://github.com/mtreinish/stestr .. _English: https://github.com/mtreinish/stestr/blob/main/README.rst .. _日本語: https://github.com/mtreinish/stestr/blob/main/README_ja.rst .. note:: stestr v2.x.x リリースシリーズは、Python 2 をサポートする最後のシリ ーズとなります。Python 2.7のサポートは「stestr リリース 3.0.0」 にて打ち切られました。 概要 ---- stestr は、パラレル Python テスト実行プログラムであり、一つのテストスイート を、分割実行するために、複数プロセスを使い、 `unittest`_ テストスイートを、 実行するようデザインされています。また、実行失敗のデバッグや実行速度改善に向け たスケジューラ最適化のために、すべてのテスト実行履歴を保存しています。この目標 達成のため、stestrでは、 `subunit`_ プロトコルを使用し、ストリーミングや、 複数ワーカーからの結果を保存することを容易にしています。 .. _unittest: https://docs.python.org/3/library/unittest.html .. _subunit: https://github.com/testing-cabal/subunit stestr は、元々 `testrepository`_ プロジェクトのフォークとして始まりました。 しかし、subunit を使用する testrepository のようなあらゆるテストランナー インターフェースとなる代わりに、stestr は、python プロジェクトに特化・集中 したテストランナーです。stestr は、元々 testrepository からフォークしました が、testrepository との後方互換性はありません。高いレベルでの基本的な実行 コンセプトは、それら2つのプロジェクトの間で共有されているものの、実際の使用法 は、完全に同一というわけでありません。 .. _testrepository: https://testrepository.readthedocs.org/en/latest stestr のインストール ----------------------- stestr は、pypi 経由で利用可能です。そのため、以下を実行するだけで:: pip install -U stestr あなたのシステムに、stestr を取得することができます。もし、開発バージョンの stestr を使う必要があれば、リポジトリをクローンし、ローカルにインストール することができます:: git clone https://github.com/mtreinish/stestr.git && pip install -e stestr この操作で、stestr をあなたの python 環境のローカル開発環境に対し、編集可能 モードでインストールできます。 stestr の利用 ----------------- stestr のインストール後、テスト実行のために使う方法は、とても簡単です。まずはじめに、 ``.stestr.conf`` ファイルをあなたのプロジェクトのために作成します。この ファイルは、「どこにテストがあるのか」「どうやってテストを実行する のか」という基本的な情報を stestr に伝えます。基本最小限の内容例としては次の ようなものとなります:: [DEFAULT] test_path=./project_source_dir/tests この記述は、テスト探索のために使われるディレクトリの相対パスを、stestr に伝え ます。これは、標準的な `unittest discovery`_ の ``--start-directory`` と 同様です。 .. _unittest discovery: https://docs.python.org/3/library/unittest.html#test-discovery あるいは、`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 からの移行 ----------------------------- もし、testrepository を既に使用しているプロジェクトを持っているのであれば、 stestr のソースリポジトリには、あなたのリポジトリを stestr を利用するように 移行するための、ヘルパースクリプトがあります。このスクリプトは、単に、 ``.testr.conf`` ファイルから、 ``.stestr.conf`` ファイルを作成します。 (標準的な subunit.run テストコマンド形式を利用していることを想定しています) これを実行するためには、あなたのプロジェクトリポジトリで、以下を実行します:: $STESTR_SOURCE_DIR/tools/testr_to_stestr.py これにより、 ``.stestr.conf`` が作成されます。 manpage の生成 ------------------ 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 pull requests: https://help.github.com/articles/about-pull-requests/ コミュニティ ------------- GitHub でのやり取りに加え、stestr の IRC チャネルもあります: `OFTC `__ の #stestr チャネル stestr に関する質問、もしくは議論をしていますので、気軽に参加してください。