如何在测试结束时保持活动运行?

3

我正在尝试编写一个测试,以执行应用程序中的工作流程。但是,我需要将我的测试分成两个部分。场景大致如下:

我启动我的应用程序,然后它启动一个画廊来选择图像,然后返回到我的应用程序以继续工作流程。

我的问题是,我无法自动化画廊中的操作,因此这需要一些手动操作。因此,我的计划是自动化第一部分,即启动我的应用程序并启动画廊,然后手动选择图像,然后运行我的自动化测试的第二部分。

问题在于,在第一部分自动化结束时,即使我没有执行tearDown步骤并调用activity.finish(),活动也会关闭。

我已经包含了我正在使用的代码示例。如果您能指出我在这里做错了什么,那就太棒了。我应该提到我正在使用Robotium进行自动化。

package com.myapp.android.testWithAPK; 
import com.jayway.android.robotium.solo.Solo; 
import android.test.ActivityInstrumentationTestCase2; 
public class MyTest extends ActivityInstrumentationTestCase2 { 
        private static final String TARGET_PACKAGE_ID = "com.myapp.android"; 
        private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = 
"com.myapp.android.ui.Main"; 
        private static Class<?> launcherActivityClass; 
        static { 
                try { 
                        launcherActivityClass = Class 
                                        .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 
                } catch (ClassNotFoundException e) { 
                        throw new RuntimeException(e); 
                } 
        } 
        @SuppressWarnings("unchecked") 
        public MyTest() throws ClassNotFoundException { 
                super(launcherActivityClass); 
        } 
        private Solo solo; 
        @Override 
        protected void setUp() throws Exception { 
                solo = new Solo(getInstrumentation()); 
        } 
        public void testCreatePostCard() throws InterruptedException{ 
                solo.clickOnText("Make a postcard"); 
                solo.clickOnText("Choose photo"); 
1个回答

0

我猜测一下,因为你的代码被切断了,但我相信你正在运行一个测试,然后进行手动步骤,然后运行第二个测试(通过另一个adb命令)。我的理解正确吗?如果是这样的话,那么问题就在于每次启动新测试时,它都会GC掉应用程序的旧活动。解决方法是创建一个测试,包括两个部分,并在测试的中间等待下一个测试部分处于正确状态,测试方法是使用sleep命令等待几秒钟,如果有效,则通过放置在屏幕上应用程序返回到的元素等待部分来改进此代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接