2012-04-19 4 views
1

私のワークスペースで私はアンドロイドプロジェクトMyAndroidProjectと私のテストプロジェクトMyAndroidProjectTestsディレクトリを持ってどのように私はMyAndroidProjectTestsでテストを実行するプリコミットgitフックを書くことができ、テストが失敗した場合、コードの変更をコミットすることを拒否?テストプロジェクトが失敗した場合にAndroidプロジェクトをコミットするのを防ぐGitプリコミットフックを書くには?

com.mydomain.tests.Models.MyProjectTests:....... 
Test results for InstrumentationTestRunner=....... 
Time: 0.05 

OK (10 tests) 

私は何がわからないんですがテストに合格または解析するよりも、他の失敗した場合かを判断しようとするために使用する方法である:私はターミナルでテストを実行すると

彼らは通常、このような出力を持っています最後の行の出力(例えばOKまたはFAILEDと私はその方法があまり好きではありません。私はターミナルでテストを実行するために使用するコマンドからステータスを返すのが理想的です:

adb shell am instrument -w com.mydomain.tests/android.test.InstrumentationTestRunner 

レスポンスをシェルscで使用したいのですが私が.git/hooks/フォルダーにプレコミットフックとして置くことができるスクリプト。

私は、他のリソースへの情報やリンクをありがとうと思います。

+0

長時間実行されているタスクをプリコミットフックに追加することは、一般に、作業を妨げるため、悪い考えです。このようなチェックは、テストを中断するコミットのマージをゲートするCIシステムで実行する必要があります。 – sschuberth

答えて

2

Gitのフックは、プロジェクト/レポルートから実行されている - ので、あなただけのプリコミットフックに直接コマンドを使用することができるはずです。

#!/bin/bash 
adb shell am instrument -w com.mydomain.tests/android.test.InstrumentationTestRunner 

adbが失敗した場合にどれもゼロが存在コードを返す場合 - コミットは中止されます。

別の目的のために終了コードを取得する必要がある場合は、それを行う方法を正確に示すother questionsがあります。

関連する問題