3

teamcityを機能させ、カスタムテストランナーをビルドして実行します(http://pypi.python.org/pypi/teamcity-messages

私はこの投稿を大雑把に騙しました:Python/Django継続的インテグレーションのためのTeamCity

私のrun_suiteメソッドは次のようになります。

from teamcity import underTeamcity
from teamcity.unittestpy import TeamcityTestRunner
return TeamcityTestRunner().run(suite)

現在、coverage.pyでdjango_coverageを使用していますが、teamcityでテストカバレッジデータを取得したいと思います。

チームシティに縛られることはありませんが、CIサーバーとして使用することを好みますが、簡単であれば別のサーバーに変更できます。

./manage.py test_coverageがteamcityで出力するデータを取得するにはどうすればよいですか?

4

2 に答える 2

1

settings.py で次の構成でteamcity-noseを使用します。

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['-v', '-s', '--rednose', '--with-selenium',]

if os.getenv('TEAMCITY_PROJECT_NAME') is not None:
   # whatever special teamcity settings you might have go here

テストを行うビルドステップは次のようになります。

. /opt/teamcity/virtualenvs/myproj/bin/activate
 dropdb test_myproj-teamcity &> /dev/null # bug that is not destroying database
 manage.py test

私のプロジェクトのmanage.pyはパス上にあります(setup.pyを介してvirtualenv binにインストールします)ので、そうでない場合はパスを追加する必要があります。

パッケージのバージョン管理に問題があるため、テスト自体にカバレッジを追加することはできませんでした。そのため、最新のカバレッジ パッケージでは、追加のビルド ステップで追加しました。

. /opt/teamcity/virtualenvs/myproj/bin/activate
 coverage html --include=myproj/*.*
 cloc . --out=./htmlcov/cloc.txt

これをアーティファクトに追加すると、カバレッジ html を含むタブを追加できます。

./htmlcov/

また、ラインカウンターを含むタブも追加します。cloc または選択したラインカウンターをインストールする必要があります。

また、1 晩に 1 回 fab を介してステージング サーバーにデプロイするための追加のビルド構成 (通常どおりアクティブ化して fab を実行するだけ) と、pip ファイルが変更された場合に pip 要件を自動的にインストールするための追加のビルドもあり、これをトリガー ルールに追加します。 "pip install -r requirements.pip" ビルド:

+:**.pip

そして、これをテストビルドに追加して、ビルドテストに影響を与えない pip やその他のファイルが変更されたときに実行されないようにします。

+:.
-:**.pip
-:*fabfile.py
-:*myproj/conf/*
+:*myproj/conf/teamcity/*
于 2011-09-09T08:12:17.267 に答える