0

私の現在の設定では、私の開発サーバーには、私と他のユーザーがプッシュするベア git リポジトリがたくさんあります。しかし、今は PHPUnit テストをサーバー自体に統合したいと考えています。

私の最初のアイデアは、という名前の各レポにサブディレクトリを作成し、 VisualPHPUnittestsのようなものでテストを実行して、サーバーの「Web サイト」から結果を確認できるようにすることでした。ただし、リモート リポジトリがむき出しになっているため、実際には存在しないため、VPHPU にテスト ディレクトリを探すように指示することはできません。

物事を行うためのより良い方法はありますか?私は、すべてのプロジェクトのテストを含む別のリポジトリを用意して、それをむき出しにしないことを考えていましたが、それは git 標準に反しており、何かを壊す可能性があります。

4

2 に答える 2

1

JenkinsまたはQuickBuildをセットアップしたほうがよいと思います。Jenkins はオープンソースですが、QuickBuild はそうではありません。しかし、QuickBuild には無料のバージョンがあり、前者よりも信頼性が高いことがわかりました。どちらも、ソースをチェックアウトし、テストを実行し、結果を投稿することができます。そして、長い目で見れば、展開のために製品をパッケージ化するなど、より多くのことができるようになります。

現在のアイデアをうまく​​機能させようとしている場合は、コードをどこかでチェックアウトし、チェックアウトに対してテストを実行し、結果を既知の場所に投稿する post-receive フックが必要です。ただし、いくつかのことを考える必要があります。たとえば、すべてのブランチをテストしますか? 一人だけ?post-receive フックは、すべてのブランチが更新されていることを通知するため、テストのみを行う場合はフィルタリングが必要になる場合がありますmaster。Pro Git には、フックとそのカスタマイズ方法に関する情報がいくつかあります。

裸のリポジトリの使用は避けたいと思います。眉をひそめている裸のリポジトリへのプッシュなどに対処する必要があります。最終的には、Jenkins や QuickBuild の助けが必要になると思います。

于 2013-02-03T22:33:33.593 に答える
1

リモート git リポジトリをgerritで管理し、 gerritプラグインを使用してすべての自動テストを実行するようにジェンキンを設定することをお勧めします。

そうすれば、変更を gerrit にプッシュすると、gerrit がジェンキンに通知し、ジェンキンは新しくプッシュされたコードに対してすべてのテストを実行します。ここで、gerrit は、変更とテストの結果を示すレビューを開きます。次に、jenkins が満足し、変更が正常に見えたら、変更を公式ブランチにマージし、別の開発者が再度フェッチできるようにします。

この手順は少し複雑に思えるかもしれませんが、テストに成功したコードのみがリポジトリに存在するようにし、テストを中断した場合は、それを中断したことを確認できます。- それが自動テストの要点です。;)

于 2013-02-03T23:13:21.750 に答える