Openstackユニットテスト
2120 ワード
この文章はOpenstack novaの開発過程でどのようにユニットテストを行うかを紹介し、novaの開発環境が構築された後(環境構築は前のブログを参考にすることができる)、ソースコードを修正したら、ユニットテストを行うべきで、本文章は基本的に官方文書の翻訳であり、肝心なステップだけを少し紹介し、関連資料の後に列挙する.
1.テストの実行
前の記事では、ユニットテストの方法について説明しました.テストスクリプトを実行します.
これによりnovaプロジェクト全体をテストし、多くの時間がかかります.このスクリプトにはnoseテストフレームワークの使い方がカプセル化されており、noseについては自分で関連リソースを検索したり、ここで理解したりすることができます.このスクリプトは、次のようなさまざまなパラメータをサポートします.
パラメータの詳細については、ここをクリックしてください.
上はプロジェクト全体のテストです.モジュールまたは機能のみをテストしたい場合は、対応するテストサブセットを実行できます.
上記のコードはnovaスケジューラモジュールのテストであり、モジュール内の具体的なクラスまたは方法をテストすることもできます.以下のようにします.
2.制御出力
デフォルトでは、テストを実行すると、コンソールに大量のテスト情報が出力されます.これらの出力で目的の結果を見つけるのは難しいです.
ファイルにリダイレクトするのは、依然として便利ではありません.これにより、テストの出力結果を制御する必要があります.テストを実行するときにパラメータを追加すればいいです.
とりあえずここまで書いておきますが、ここは公式指導です.
1.テストの実行
前の記事では、ユニットテストの方法について説明しました.テストスクリプトを実行します.
./run_tests.sh
これによりnovaプロジェクト全体をテストし、多くの時間がかかります.このスクリプトにはnoseテストフレームワークの使い方がカプセル化されており、noseについては自分で関連リソースを検索したり、ここで理解したりすることができます.このスクリプトは、次のようなさまざまなパラメータをサポートします.
Usage: ./run_tests.sh [OPTION]...
Run Nova's test suite(s)
-V, --virtual-env Always use virtualenv. Install automatically if not present
-N, --no-virtual-env Don't use virtualenv. Run tests in local environment
-s, --no-site-packages Isolate the virtualenv from the global Python environment
-r, --recreate-db Recreate the test database (deprecated, as this is now the default).
-n, --no-recreate-db Don't recreate the test database.
-x, --stop Stop running tests after the first error or failure.
-f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added.
-p, --pep8 Just run pep8
-P, --no-pep8 Don't run pep8
-c, --coverage Generate coverage report
-h, --help Print this usage message
--hide-elapsed Don't print the elapsed time for each test along with slow test list
パラメータの詳細については、ここをクリックしてください.
上はプロジェクト全体のテストです.モジュールまたは機能のみをテストしたい場合は、対応するテストサブセットを実行できます.
./run_tests.sh scheduler
# nova/tests/scheduler
上記のコードはnovaスケジューラモジュールのテストであり、モジュール内の具体的なクラスまたは方法をテストすることもできます.以下のようにします.
./run_tests.sh test_libvirt:HostStateTestCase
# libvirt HostStateTestCase
./run_tests.sh test_utils:ToPrimitiveTestCase.test_dict
# ToPrimitiveTestCase.test_dict
2.制御出力
デフォルトでは、テストを実行すると、コンソールに大量のテスト情報が出力されます.これらの出力で目的の結果を見つけるのは難しいです.
ファイルにリダイレクトするのは、依然として便利ではありません.これにより、テストの出力結果を制御する必要があります.テストを実行するときにパラメータを追加すればいいです.
--nologcapture
とりあえずここまで書いておきますが、ここは公式指導です.