2016-09-14 76 views
1

我在Android Studio的AndroidTests目录下有一些安装了Android的测试工具。当然,我可以手动执行测试,但是我需要在每次构建之后执行套件中的所有测试(“发布”类型的构建,而不是在正常的调试构建过程中)。我需要这样做,因为我想在发布新应用的apk之前验证新代码对测试。怎么做?我谷歌它,但我没有找到一个合适的解决方案呢。如何在每次“发布”构建之前使用gradle执行Android测试?

有什么想法?

回答

4

最后我设法做到了。我已经添加了以下配置我的build.gradle文件在我的Android Studio项目:

// execute android tests before realising a new apk 
tasks.whenTaskAdded { task -> 
    if (task.name == 'assembleRelease') 
     task.dependsOn('connectedAndroidTest') 
} 

android { 
signingConfigs { 
    release { 
     keyAlias 'key' 
     keyPassword 'password' 
     storeFile file('/path/to/release_keystore.jks') 
     storePassword 'password' 
    } 

} 
buildTypes { 
    debug { 
     signingConfig signingConfigs.release 
    } 
    release { 
     signingConfig signingConfigs.release 
    } 
} 

这样做,我可以建立一个发布APK时运行所有Android测试后。如果测试失败,则不会构建apk。

0

我想你应该潜入一个特定的主题:Continuous Integration

这将允许您在每次构建或提交之后运行测试套件,构建变体,在Google Play上发布以及更多...从经典Jenkins CI开始,这可能不是最精致和易于使用的,我的意思是用户友好的工具,但与TravisCircle CI相比,它提供了巨大的配置可能性,良好的应用程序社区和免费使用。

开始这篇文章:http://www.vogella.com/tutorials/Jenkins/article.html

其他工具:我已经使用TravisGithub项目,但Circle CIGreen House CI可能也是不错的选择。

希望这将有助于

+0

是的你是对的,但我现在不需要,因为我只是开发一个简单的应用程序。我现在不需要CI,我只是一个独立开发者。无论如何感谢参考,但我正在寻找不同的东西,我想我问的东西应该有一个简单的答案,但也许不是。 :-) – Daniele

+0

詹金斯是一个伟大的开源工具,如果你愿意改变一份工作,那么他的技能很棒。我已经是特拉维斯用于我的非常小的项目,检查我的github,尼克是一样的我的用户名 – piotrek1543

2

一般来说,你可以定义一个依赖使用dependsOn法的任务。

例如:

task A << { 
    println 'Hello from A' 
} 

task B << { 
    println 'Hello from B' 
} 

B.dependsOn A 

您将获得

> gradle -q B 
Hello from A 
Hello from B 

在你的情况,你可以指定:

assemble.dependsOn test 

如果您想仅指定发布的依赖打造:

assembleRelease.dependsOn test 

使用:

connectedAndroidTest上运行连接的仿真器或装置中的测试。
test在本地主机上运行单元测试。

+0

yeahh我认为这样的东西,但什么是“测试”?不被gradle识别。我需要在某处指定它吗? – Daniele

+0

@Daniele使用试验运行单元测试或connectedAndroidTest运行机器人测试 –

+0

确定我加入此:tasks.whenTaskAdded {任务 - > 如果(task.name ==“assembleRelease”) task.dependsOn(“connectedAndroidTest” ) }现在它似乎工作,但问题是没有测试执行死于签名证书问题。问题是connectedAndroidTest针对“构建”类型而不是“发布”类型的构建运行测试。在这里找到更多的信息:http://stackoverflow.com/questions/23923218/android-gradle-running-tests-on-non-debug-builds。不清楚现在该做什么。 – Daniele

相关问题