Articles of 测试

Gradle:如何为课程进行仪器测试

我正在Android Studio中运行检测测试,运行配置定义如下(不介意警告): 所以这是针对特定类调用测试服。 我怎么能用命令行实现这一点,我想用./gradlew命令?

如何使用Gradle为Android构建发布测试apk?

我知道,使用Gradle命令assembleAndroidTest我可以构建一个测试APK。 但我可以使用此测试APK仅用于我的应用程序的调试版本,对吧? 如果我将它与发布版本一起使用,我会收到错误消息,例如”[SDR.handleImages] Unable to find test for com.xxx.xxx (packagename)” 如何使用Gradle在发布模式下构建测试APK?

在Android Instrumentation上下文中编写/创建文件

我有一个类创建(或打开)一个文件来写一些数据。 此类在构造函数中接收Context,将其保存在实例字段中,然后使用它来调用context.openFileOutput方法。 在运行应用程序时,我通过将ApplicationContext作为Context传递来实例化此类,并且一切都按预期工作。 但是,当我尝试使用Instrumentation Test测试这个类时,我得到一个NullPointerException 。 我正在传递getInstrumentation().getContext()上下文,我知道它对应于测试的上下文,而不是真正的应用程序。 getInstrumentation().getContext().openFileOutput(“myFile”, Context.MODE_PRIVATE); // This throws NullPointerException 🙁 🙁 在测试中,我需要在测试包中创建此文件,而不是在应用程序包中创建,因为我不想在我的应用程序中覆盖该文件。 我知道那里有一个RenamingDelegatingContext类,但我不能将这个上下文传递给我的类,因为我的类也打开了一个原始资源,我希望在运行测试时这个资源不同(类似于模拟资源)。 我对此进行了大量搜索,并且没有关于Instrumentation Context的文档。 我找不到它的局限性或任何解决我问题的东西。 你知道怎么解决这个问题吗?

测试一个名为setResult的活动

我正在为一个活动编写测试(我的测试类扩展了ActivityInstrumentationTestCase2),我已经编写了一些基本的测试并且工作正常。 但是我的活动完成时会通过setResult(结果代码,Intent i)将额外数据返回给调用活动。我想用仪器做什么让我的活动完成,然后检查它在setResult调用中传递的内容。 是否有一些框架提供了这样做的方式? 我还没有find任何东西,一种方法是子类化活动类并覆盖setResult,让它记住并公开传递给setResult的内容(原来setResult是final,所以你也不能这样做) ,似乎应该有更好的方法。

如何在设备上安装unsigned android应用程序?

目前,一个开发团队正在开发Android应用程序,在开发过程中,测试人员必须测试当前状态并报告问题。 到目前为止,我只是通过在我的电脑上连接测试仪的设备并在IDE中运行来安装应用程序。 这样,如果必须每天多次在多个设备上安装应用程序,我们会浪费大量时间。 我想要的是向测试团队发送.apk文件,让他们自己安装并运行应用程序。 有谁知道最好的方法是什么? 谢谢!

用浓缩咖啡测试订单

有没有办法在android中设置测试运行顺序? 我使用Espresso框架,需要测试它们之间的许多活动和转换。 我想为这些活动编写不同的测试,但我需要一个特定的命令来运行这些测试。

浓咖啡如何等待一段时间(1小时)?

在我的测试案例中,我必须记录1小时,在机器人solo.sleep(600000)完成了我的工作,但在浓缩咖啡中,我对IdlingResource概念感到困惑。 我必须开始录音并等待一段时间(取决于测试types)15分钟,60分钟等。 机器人中的等效代码 solo.clickOnView(solo.getView(“start_record”)); solo.sleep(duration * 60 * 1000); solo.clickOnView(solo.getView(“stop_record”)); 我尝试在浓缩咖啡中使用它 @RunWith(AndroidJUnit4.class) @SmallTest public class AaEspressoTest { private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = “com.absd.rec.RecorderActivity”; private static Class launcherActivityClass; private Solo solo; private static CoreRecordingTest skyroTestRunner; private static Class activityClass; static { try { activityClass = (Class) Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); } catch (ClassNotFoundException e) { throw new RuntimeException(e); […]

Android Studio Espresso测试错误:空测试套件

尝试在Android Studio中执行测试时,我一直遇到以下错误:测试运行失败:无法find以下内容的检测信息:ComponentInfo {.test / android.support.test.runner.AndroidJUnitRunner} 我的测试类在androidTest / java目录中并且有一个构造函数。 我的build.gradle也是正确的。 任何帮助表示赞赏。 测试类 @RunWith(AndroidJUnit4.class) @LargeTest public class AndroidUITests extends ActivityInstrumentationTestCase2{ private UserActivity userActivity; public AndroidUITests() { super(UserActivity.class); } @Before public void setUp() throws Exception { super.setUp(); injectInstrumentation(InstrumentationRegistry.getInstrumentation()); userActivity = getActivity(); } @Test public void testPhoneIconIsDisplayed() { // When the phone_icon view is available, // check that it […]

如何从Android Oreo中禁用espresso测试的新自动填充function

使用sdk 26在Android设备上运行测试会导致它们失败,因为新的自动填充function会在espresso尝试点击它们时隐藏字段。 我在firebase测试实验室运行我的测试,所以我不能在我的测试设备上手动禁用它们。 一些图片: 1.单击用户名字段前可以看到密码。 2.单击用户名字段后,此自动填充对话框将隐藏密码字段: 3.登录后显示另一个“填充”对话框: Espresso无法点击现在的密码字段,因为自动填充对话框隐藏了我的字段并fail 。 使用AutofillManager#disableAutofillServices()仅禁用#2。 对话但是#3。 还在那里。 如何在测试设备上禁用自动填充?

Android模拟器的“好”程度如何?

正如标题所说,Android模拟器有多“好”? 我没有Android手机但是可以纯粹使用模拟器作为测试环境进行开发吗? 我最初的问题是: 仿真器是否像普通的Android手机一样响应(当然这取决于确切的手机,但一般而言)? 有没有办法控制模拟器上的内存? 有没有人在手机上标记过但不是模拟器? 或相反亦然? 您的正常测试程序是什么?在整个测试过程中,或者仿真器在最后进行测试和电话测试? 对于任何反馈,我们都表示感谢。 谢谢,