鉴于我在工作区中有一个 android 项目 MyAndroidProject
和我的测试项目 MyAndroidProjectTests
目录,我如何编写一个将运行测试的预提交 git hook在 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
我想在 shell 脚本中使用响应,我可以将其作为预提交 Hook 放置在 .git/hooks/
文件夹中。
如果有任何信息或其他资源的链接,我将不胜感激,非常感谢。
最佳答案
git Hook 是从您的项目/存储库根目录执行的 - 因此您应该能够直接在预提交 Hook 中使用您的命令:
#!/bin/bash
adb shell am instrument -w com.mydomain.tests/android.test.InstrumentationTestRunner
如果adb
在失败时返回非零存在代码 - 提交将被中止。
如果您需要出于其他目的获取退出代码,可以使用 other questions准确指示如何做到这一点。
关于android - 如何编写一个 Git 预提交 Hook ,以防止在测试项目失败时提交 Android 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234192/