Hatena::ブログ(Diary)

kuma8の日記 RSSフィード

2012-11-24

[][][] RE: JenkinsPython の連携

はじめに

今回は、JenkinsPython の連携についてです。

使用するツールは、とても便利なテストフレームワーク pytest と

カバレッジ coverage との連携についてです。

pytest の連携

まず、テスト結果のレポートからです。

Jenkins 側へ追加のプラグインインストールは不要です。

pytest は、実行時にオプションを渡すことで XUnit 形式のレポートを出力できます。

インストール

$ easy_install -ZU pytest

XUnit 形式の XML でテスト結果を出力する

$ py.test --junitxml=pytest.xml test_sample1.py

pytest の使い方は割愛しますが、コマンドから --junitxml オプションを付与することで

XUnit形式のレポートを出力させることができます。

レポート結果の集約には、ビルド後の処理に、JUnitテスト結果の集計 へチェックをいれ、

出力ファイルとなる pytest.xml を入力します。

f:id:kuma8:20121124112047p:image

coverage 連携

カバレッジの出力には、 Python ライブラリpython-coverage 、

pytest プラグインの pytest-cov

Jenkins プラグインの Cobertura Plugin が必要です。

Cobertura Plugin のインストールは、 Jenkins の管理コンソールからインストールします。

python 側のインストール

$ easy_install -ZU coverage
$ easy_install -ZU pytest-cov

カバレッジXML 形式で出力する

$ py.test --cov-report xml --cov sample1 test_sample1.py

テスト結果のレポートと同じように、コマンドへオプションを渡すことで

カバレッジ結果を XML で出力します。

ビルド後の処理に、Cobertura カバレッジ・レポートの集計を実行し、出力ファイルを読み込ませます。

f:id:kuma8:20121124112048p:image

最後に

すべて出力させる

py.test --junitxml=pytest.xml \
        --cov-report xml \
        --cov sample1 \
        test_sample1.py

Jenkins 画面

f:id:kuma8:20121124112049p:image

2011-12-11

[] 公開鍵を登録する。

heroku create 時に、 あ、 heroku.com 用の鍵作って無いやって、 Ctrl+C を押したときに公開鍵を登録する方法です。

2回目の heroku create 時には、heroku コマンドが確認してくれません。

 $ heroku keys:add /path/to/your/public.key

で追加できます。

追加後は、 heroku keys で登録した鍵を確認できます。

なお、本来は公開鍵の登録し直しに利用するようです。

[] ログを確認する。

アプリが Application Error で落ちたときに確認する方法です。

 $ heroku logs

直近の100行程度のログだけが出力されるようです。

それ以上は課金する必要があるようです。

2011-09-25

[][] github pages に Sphinx で生成したドキュメントを公開する。

Github PagesSphinxで生成したドキュメントを公開するほうほうです。

Github Pages では各リポジトリごとにプロジェクトページを作成することができます。

各プロジェクトごとにページを作成することでマニュアルなどの公開が便利にできます。

Sphinx で生成したドキュメントをそのまま公開すると、スタイルシートなど静的ファイルへのリンクが切れてしまいます。

静的ファイルは、ルートからのパスを想定しているためです。

html 生成時にリンクを修正してくれるプラグインが公開されています。

sphinxtogithub を利用すると、 Github Pages 用のリンクに修正してくれます。

利用方法

1. sphinxtogithub をインストールする。

$ easy_install -ZU sphinxtogithub

2. conf.py で、プラグインを有効にする。

extensions = ['sphinxtogithub']

3. make html でプロジェクトを生成しなおす。

以上の手順だけで簡単に Github Pages 対応ができます。

2011-09-24

[][] SphinxGoogle Analytics を利用する。

SphinxGoogle Analytics をトラックするスクリプトを埋めるのは

どうすればいいんだろと思っていたら、 sphinx-contrib にプラグイン

公開されていました。


sphinxcontrib-googleanalytics

https://bitbucket.org/birkenfeld/sphinx-contrib/src/bb0b2036aa45/googleanalytics/


sphinxcontrib-googleanalytics の使い方を紹介します。


1. Google Analytics のIDを取得する。

2. Sphinx / sphinxcontrib-googleanalytics をインストールする。

   $ easy_install -ZU sphinx
   $ easy_install -ZU sphinxcontrib-googleanalytics

3. sphinxプロジェクトを作成する。

4. conf.py に sphinxcontrib-googleanalytics の設定をします。

プラグインを有効にします。

extensions = ['sphinxcontrib.googleanalytics']

Google Analytics の設定をします。

# Google Analytics

googleanalytics_id = 'UA-123-456'

5. make html をして、HTMLページを生成する。

以上の手順で簡単に Google Analytics を利用できます。

Google Analytics を埋め込んだページ例 http://aohta.github.com/nose_tutorial/

2011-05-07

[] dotcloud に flask アプリデプロイする。

はじめに

最近、dotcloud のアカウントを入手したので、Flaskアプリデプロイしてみました。

dotcloud の最初の手順は、id:ymotongpoo記事がわかりやすいです。

アプリケーションデプロイする

Flask アプリケーションデプロイしてみます。

ディレクトリ構成は次のようにしました。

$ tree www/

www/

├── hello

│%% ├── hello.py

│%% └── hello.pyc

├── requirements.txt

└── wsgi.py

import sys
sys.path.append('hello')
from hello import app

def application(environ, start_response):
  return app(environ, start_response)
  • requirements.txt を用意します。
    • echo flask >> requirements.txt で作成します。