Android studio 从AndroidStudio和gradle任务运行测试之间的差异

Android studio 从AndroidStudio和gradle任务运行测试之间的差异,android-studio,android-gradle-plugin,mockito,powermock,Android Studio,Android Gradle Plugin,Mockito,Powermock,我有在我的项目中使用mockito和powerMockito的本地测试。大约有300个。 当我从Android Studio(运行->运行测试配置)运行它们时,它们都通过了测试。 但是我们的CI系统使用gradle task testDebugUnitTest启动它,其中大约90个由于不同的错误而失败 问题是:这些机制之间有什么区别?您使用的是Android Gradle()插件吗 你必须知道Android Studio构建系统是基于Gradle的,Gradle的Android插件添加了一些特定

我有在我的项目中使用mockito和powerMockito的本地测试。大约有300个。 当我从Android Studio(运行->运行测试配置)运行它们时,它们都通过了测试。 但是我们的CI系统使用gradle task testDebugUnitTest启动它,其中大约90个由于不同的错误而失败


问题是:这些机制之间有什么区别?

您使用的是Android Gradle()插件吗

你必须知道Android Studio构建系统是基于Gradle的,Gradle的Android插件添加了一些特定于构建Android应用程序的功能。虽然Android插件通常与Android Studio同步更新,但该插件(以及Gradle系统的其余部分)可以独立于Android Studio运行并单独更新

官方文件如下:

因此,如果存在版本和平台相关的差异,我们应该预期结果会有所不同


希望这有帮助

您正在使用Android Gradle()插件吗

你必须知道Android Studio构建系统是基于Gradle的,Gradle的Android插件添加了一些特定于构建Android应用程序的功能。虽然Android插件通常与Android Studio同步更新,但该插件(以及Gradle系统的其余部分)可以独立于Android Studio运行并单独更新

官方文件如下:

因此,如果存在版本和平台相关的差异,我们应该预期结果会有所不同


希望这有帮助

这是非常广泛的,因为它取决于测试做什么,他们期望从环境中得到什么,他们如何失败,等等。可能是一些具有相对路径的文件,可能是环境变量,操作系统之间的差异,可能是JDK中的差异,你可以说。。。确实没有提供足够的信息来得出明智的结论。您必须自己进行调查,找出其中的差异(可能是工具中的bug)。如果您能提供准确的信息,我们可以用来重现您的场景,那么我们可以进行调查。否则我们无法猜测。好吧,问题是:当我在android studio中点击绿色的“运行”按钮时会发生什么?格雷德尔跑了吗?还是怎样我不想修改这90个测试,这是另一回事。如果你从Gradle运行,你保证它会工作。根据我的经验,从Android Studio运行无法重新构建测试,或者使用
/gradlew test
中的缓存测试,或者说找不到测试套件。这可能会在以后的版本中得到修复,但您是否发现了错误?这是一个非常广泛的问题,因为它取决于测试所做的事情、他们对环境的期望、他们如何失败等等。可能是一些具有相对路径的文件,可能是环境变量,操作系统之间的差异,可能是JDK中的差异,你说得对。。。确实没有提供足够的信息来得出明智的结论。您必须自己进行调查,找出其中的差异(可能是工具中的bug)。如果您能提供准确的信息,我们可以用来重现您的场景,那么我们可以进行调查。否则我们无法猜测。好吧,问题是:当我在android studio中点击绿色的“运行”按钮时会发生什么?格雷德尔跑了吗?还是怎样我不想修改这90个测试,这是另一回事。如果你从Gradle运行,你保证它会工作。根据我的经验,从Android Studio运行无法重新构建测试,或者使用
/gradlew test
中的缓存测试,或者说找不到测试套件。这可能会在以后的版本中得到修复,但您是否发现了问题所在?请在“运行”时检查Android studio运行的是哪个gradle任务。你可以在“事件日志”窗口[右下角]中看到这些信息。@RanjanKumar是的,天气比较暖和。但我不知道是谁在运行测试。我看到的只是准备二进制文件进行测试的工作。当你“运行”时,检查哪个gradle任务是由Android studio运行的。你可以在“事件日志”窗口[右下角]中看到这些信息。@RanjanKumar是的,天气比较暖和。但我不知道是谁在运行测试。我看到的只是准备二进制文件进行测试的工作。