在我的仪器测试中,我想在横向和纵向模式下测试一些东西,所以我想在测试开始之前设置方向。有没有办法以编程方式设置设备或模拟器方向?我知道setRequestedOrientation()方法,但这适用于某个Activity,如果开始另一个Activity,我必须记得再次调用它。我正在寻找的是一种“全局”设置方向的方法,以便每个新Activity都自动以该方向开始。更新:解决方案必须满足2个要求:1)它不会让我更改我的生产代码,2)它需要在CI环境中运行。 最佳答案 下面是我创建的一个ViewAction以简化此操作:https://g
我在仪器测试(我使用Robotium)中遇到问题,所以我决定调试它。我通常使用gradlewconnectedAndroidTest从命令行运行测试,但它也可以通过选择特定的gradle任务从AndroidStudio(v0.8.14)运行。但是,如果我尝试调试该gradle任务,则会出现错误Unabletoopendebuggerport:java.net.SocketException"socketclosed"并且测试会继续运行(无需调试)。是否有另一种调试仪器测试的方法(使用IDE)或者我在我的设置中遗漏了什么?更新:但是,它可以在模拟器上运行! 最
在我的Android应用程序中,我启用了多索引。该应用程序在模拟器上运行良好。我正在使用robotium来测试应用程序。但是当我执行仪器测试用例时,有时测试通过,但大多数情况下它们在系统重启后也会失败。通过和失败之间没有代码更改。默认gradle配置:android{defaultConfig{applicationId"com.example.androidapp"minSdkVersion16targetSdkVersion23multiDexEnabledtruetestInstrumentationRunner"com.android.test.runner.MultiDexT
我正在尝试使用测试支持库框架来测试基本的未绑定(bind)服务:http://developer.android.com/tools/testing-support-library/index.html本地服务.java:publicclassLocalServiceextendsService{@OverridepublicIBinderonBind(Intentintent){returnnull;}}本地服务测试.java:@RunWith(AndroidJUnit4.class)publicclassLocalServiceTest{@RulepublicfinalServic
我遇到了与FragmentActivitycannotbetestedviaActivityInstrumentationTestCase2类似的问题顶级解决方案的问题仅适用于使用Eclipse构建系统。我正在为我的项目使用Gradle。在运行ART运行时的Nexus5上,我的Espresso仪器测试运行完美。当我在Dalvik运行时或模拟器上使用Nexus4时,我遇到了在测试框架之外运行应用程序时不会发生的异常。java.lang.NoClassDefFoundError:com.packagename.fragment.ProgressDialogFragment在日志中,我发现这
我在Android应用程序中使用Dagger。它在应用程序中工作,但当我运行仪器测试时,我收到NoClassDefFoundError。我正在使用Gradle和Espresso。这是在没有progaurd的情况下发生的。这很奇怪,因为加载了“Module$$ModuleAdapter”,但没有加载“Module$$ModuleAdapter$EndpointProvidesAdapter”。我将APK从设备上拉回并使用dexdump验证类确实在APK中,“Module$$ModuleAdapter$EndpointProvidesAdapter”。关于可能导致此问题的任何想法?java
我有一个Android/Gradle项目。每当我想运行测试时,我运行:./gradlewconnectedInstrumentTest它在我项目的测试文件夹下运行我所有的测试。我的测试文件夹有几个自动化测试和非自动化测试。我最感兴趣的是在没有缓慢的自动化测试的情况下运行快速的非自动化测试。有没有办法只运行一组特定的测试,例如来自一个特定类或类似的测试?我基本上是在询问任何类型的分离,以便我可以选择在需要时只运行一些测试。创建了一个示例项目here.编辑local.properties以指向您的AndroidSDK。接下来,启动模拟器或将手机连接到计算机。然后您可以使用./gradlew
我正在尝试为特定的Activity编写批处理仪器测试(使用ActivityInstrumentationTestCase2),每次测试运行时我都会更改Intent。我可以通过单个测试来完成此操作,然后循环停止并重新启动具有新Intent的Activity,但这不是我想要的。原因之一是它们确实应该是单独的测试运行。另一个原因是,我正在使用Spoon在测试完成时生成报告,报告会正确地认为我只运行了一个测试。我想要的是将单个测试视为可能无限数量的测试,并在每次测试运行时将数据传递到测试中。很遗憾,您不能使用Theories因为它会导致InstrumentationTestRunner找不到我
AndroidJUnit4andParameterizedtests的答案链接到使用@RunWith(Parameterized.class)的Google示例。然而,这是一个简单的单元测试。如何运行参数化的instrumented测试? 最佳答案 实际上,您应该将带有@RunWith(Parameterized.class)runner的测试放在androidTest文件夹中,而不是test文件夹中。该测试将在模拟器上运行,您将能够对具有android依赖项的类进行单元测试,例如android.graphics.Rect等。当然,
每当我尝试为我的android项目运行仪器测试时,我都会遇到以下错误:Skippingdevice'test(AVD)'for'app:':UnknownAPILevel>:Nocompatibledevicesconnected.[TestRunner]FAILEDFound1connecteddevice(s),0ofwhichwerecompatible.:app:connectedDebugAndroidTestFAILEDFAILURE:Buildfailedwithanexception.*Whatwentwrong:Executionfailedfortask':app: