我已经用React-Native编码一段时间了,当我需要编写一些本地Android代码时。但是,直到开始使用使用此特定gradle任务的库之前,我才看到此gradle任务。
该库是一个端到端测试库(detox),它使用此命令"cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd .."
来构建将在自动化e2e测试中使用的android .apk
。实际上,它构建了两个apk,一个是调试版本,另一个是AndroidTest版本,但我不知道后者来自何处,它的配置位置或文档的相关位置。
我搜索了一个小时,除了这个简短的描述外,没有找到任何其他内容:
assembleAndroidTest - Assembles all the Test applications.
什么是测试应用程序?
还有-DtestBuildType=debug
是什么?
答案 0 :(得分:3)
当您运行UI测试(也称为检测测试)时,会生成两个APK。一个是您的应用程序的apk,您可能熟悉的apk,另一个是其中包含所有UI测试的apk。运行测试时,两个APK均上传到设备。 assembleAndroidTest
是构建第二个测试apk的gradle命令。默认情况下,assembleAndroidTest
将使用调试构建类型构建测试apk。您可以通过将其添加到build.gradle文件中来更改构建类型:
android {
testBuildType "release"
..
Detox对参数-DtestBuildType=debug
所做的操作使这一步骤更进一步,并允许您通过gradle任务动态指定测试apk构建类型。他们通过将其添加到他们的build.gradle文件中来做到这一点:
testBuildType System.getProperty('testBuildType', 'debug')
您可能要执行此操作的一个潜在原因是,如果要在发行版本类型上运行测试,以确保测试仍通过proguard进行。看起来像这样:
./gradlew assembleRelease assembleAndroidTest -DtestBuildType=release && cd .."