【发布时间】:2012-04-19 18:11:59
【问题描述】:
鉴于我在我的工作区中有一个 android 项目 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
我想在一个 shell 脚本中使用响应,我可以将它放在 .git/hooks/ 文件夹中作为预提交挂钩。
我将不胜感激任何信息或其他资源的链接,并在此先感谢。
【问题讨论】:
-
在预提交挂钩中添加长时间运行的任务通常是一个坏主意,因为它会阻止您工作。此类检查应在 CI 系统上进行,该系统可对破坏测试的提交合并进行门控。
标签: android git testing hook commit