[解決済み] Pythonのための "きれいな "継続的インテグレーション
質問
ちょっと...無駄な質問なのですが、BuildBotの出力は特に見栄えは良くないのですが...。
例えば、比較すると...
...その他 ビルドボット はどちらかというと古風に見えますが
私は現在 Hudson で遊んでいますが、これは非常に Java 中心です(ただし このガイド で、BuildBot よりもセットアップが簡単で、より多くの情報を得られることがわかりました)。
基本的に:Pythonを対象とした継続的インテグレーションシステムで、多くの光沢のあるグラフや同類のものを生成するものはありますか?
更新しました。 この時点から、JenkinsプロジェクトがHudsonに代わってコミュニティ版パッケージとして使用されるようになりました。オリジナルの作者もこのプロジェクトに移っています。Jenkins は現在、Ubuntu/Debian、RedHat/Fedora/CentOS などで標準パッケージとなっています。以下の更新でも基本的に正しいです。で行う起点となるのは Jenkins は異なります。
更新しました。 いくつかの代替品を試した結果、私はHudsonにこだわろうと思います。 整合性 はシンプルでよかったのですが、かなり制限されています。私が思うに ビルドボット は、私が使っていたように1台のマシンですべてを実行するのではなく、多数のビルドスレーブを持つのに適していると思います。
Pythonプロジェクト用にHudsonをセットアップするのはとても簡単でした。
- Hudson を以下からダウンロードします。 http://hudson-ci.org/
-
で実行します。
java -jar hudson.war
-
のデフォルトアドレスで Web インターフェイスを開きます。
http://localhost:8080
- ハドソンの管理]、[プラグイン]、["アップデート"または同様のものをクリックします。
-
Gitプラグインをインストールします。
git
のパスを設定する必要がありました。) - 新しいプロジェクトを作成し、リポジトリ、SCMポーリング間隔などを入力します。
-
インストール
nosetests
経由easy_install
まだの場合は -
ビルドのステップで
nosetests --with-xunit --verbose
-
JUnitテスト結果レポートを発行する」をチェックし、「テストレポートXML」を
**/nosetests.xml
以上で完了です。メール通知の設定を行い プラグイン は見てみる価値があります。私が現在Pythonのプロジェクトで使っているものもいくつかあります。
- SLOCCount プラグイン をインストールして、コードの行数を数える(そしてそれをグラフ化する!)必要があります。 sloccount を別途インストールする必要があります。
- 違反 で PyLint の出力を解析します(警告のしきい値を設定したり、各ビルドでの違反数をグラフ化したりできます)。
-
について
は coverage.py の出力をパースすることができます。Nosetest は、テストを実行しながらカバレッジを収集することができます。
nosetests --with-coverage
(を使って、テストを実行しながらカバレッジを集めることができます(これは出力を**/coverage.xml
)
どのように解決するのですか?
あなたは、以下のものをチェックアウトしたいと思うかもしれません。 鼻 と Xunit 出力プラグイン . このコマンドで、ユニットテストやカバレッジチェックを実行させることができます。
nosetests --with-xunit --enable-cover
Jenkinsを使う場合、あるいはJUnitのテストレポートをサポートしている他のCIサーバを使いたい場合に役立つと思います。
同様に、pylintの出力は 違反プラグイン
関連
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] Python 2.7サポート終了?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] if 節の終了方法
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。