Учитывая, что я в моем рабочем пространстве у меня есть андроид проект MyAndroidProject
и мои тесты проекта MyAndroidProjectTests
каталоги, как я мог бы написать предварительно совершить Git крючок, который будет запускать тесты в MyAndroidProjectTests
и отказаться от совершения каких - либо изменений в коде, если тесты не?
Когда я запускаю тесты на терминале, они обычно выводятся следующим образом:
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
Я хотел бы использовать ответ в сценарии оболочки, который я мог бы разместить в папке .git/hooks/
как крюк предварительной фиксации.
Я был бы признателен за любую информацию или ссылки на другие ресурсы и большое спасибо заранее.
git-крючки выполняются из вашего корня project/repo, поэтому вы можете просто использовать вашу команду непосредственно в крюке precommit:
#!/bin/bash
adb shell am instrument -w com.mydomain.tests/android.test.InstrumentationTestRunner
если adb
возвращает adb
существующий код при ошибке - коммит будет прерван.
Если вам нужно получить код выхода для другой цели, есть другие вопросы, указывающие, как это сделать.