将gmail SDK添加到android项目中会导致测试失败,并显示“未找到测试”

问题描述

我的任务是将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拥有的其他元标记