问题描述
我的任务是将Snapchat登录名添加到我们的Android应用中。太好了,我已经集成了它并且登录有效(在进行了一些配置之后)。
但是,在我打开PR后,CI标记connectedAndroidTest
任务失败,并显示以下消息:
com.android.build.gradle.internal.testing.ConnectedDevice > No tests found.[Pixel_XL_API_26(AVD) - 8.0.0] Failed
No tests found. This usually means that your test classes are not in the form that your test runner expects (e.g. don't inherit from TestCase or lack @Test annotations).
FAILURE: Build Failed with an exception.
* What went wrong:
Execution Failed for task ':<app_name>:connectedDebugAndroidTest'.
> There were failing tests. See the report at: file:///C:/Users/<my_username>/StudioProjects/<project_name>/<module_name>/build/reports/androidTests/connected/index.html
我打开了报告文件,它还指出没有找到测试。
在实现此功能的过程中,我没有接触,更新,打开甚至梦想任何测试文件,并且当然也没有对我们代码库中的测试进行任何更改。
为了证明这一点,我签出了dev,然后从那里运行connectedAndroidTest
命令,它们都通过了。然后,我只是将以下gmail依赖项添加到dev上的gradle文件中:
implementation 'com.snapchat.kit.sdk:login:1.6.5'
implementation 'com.snapchat.kit.sdk:core:1.6.5'
使用gradle同步了项目,然后再次运行connectedAndroidTest
命令。这次,测试失败,并显示“未找到测试”错误。因此,我没有更改任何代码,只需添加gmail依赖项便会导致此问题。
什么。上。地球。
真的吗?好的,所以我一直在拔头发,在google上搜索任何建议,但到目前为止我什么都没找到。因此,我转向StackOverflow;有没有人遇到过这样的问题?关于如何开始调试和修复这种疯狂的任何建议?
编辑:
我创建了一个全新的完全空的项目,只需添加gmail依赖项就可以轻松复制该项目。
解决方法
显然,当为检测测试构建apk时,它会丢失snapkit SDK所需的一些元标记
在androidTest目录下添加仅包含以下内容(甚至不是真实的客户端ID)的AndroidManifest.xml也可以解决该问题。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.app.package">
<application>
<meta-data android:name="com.snapchat.kit.sdk.clientId" android:value="dummy-snapchat-client-id" />
</application>
</manifest>
如果您需要编写使用snapchat SDK的测试,则可能需要提供真实的客户端ID以及正常AndroidManifest拥有的其他元标记