Android 如何在浓缩咖啡测试中获得活力?

Android 如何在浓缩咖啡测试中获得活力?,android,android-espresso,android-testing,firebase-test-lab,Android,Android Espresso,Android Testing,Firebase Test Lab,我正在尝试使用以下格式: ScreenShotter.takeScreenshot("main_screen_2", this /* activity */); 我不太确定我应该如何从一个浓缩咖啡测试中获得活动。目前,我的测试类看起来像: @RunWith(AndroidJUnit4.class) @LargeTest public class OtherTests { @Rule // Replace 'MainActivity' with the val

我正在尝试使用以下格式:

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);
我不太确定我应该如何从一个浓缩咖啡测试中获得活动。目前,我的测试类看起来像:

@RunWith(AndroidJUnit4.class)
@LargeTest
public class OtherTests {
    @Rule
    // Replace 'MainActivity' with the value of android:name entry in
    // <activity> in AndroidManifest.xml
    public ActivityScenarioRule <MainActivity> mActivityRule = new ActivityScenarioRule<>(MainActivity.class);




    @Test
    public void getDeviceInfo() {

        try {
            Thread.sleep(7000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }


        TestHelper.tap("APP_HEADER");
        TestHelper.expect("TRUE_HOME_BUTTON",5000);
        ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);
    }


}
@RunWith(AndroidJUnit4.class)
@最大的
公共类考试{
@统治
//将“MainActivity”替换为中的android:name条目的值
//在AndroidManifest.xml中
public ActivityScenarioRule mActivityRule=新的ActivityScenarioRule(MainActivity.class);
@试验
public void getDeviceInfo(){
试一试{
睡眠(7000);
}捕捉(中断异常e){
e、 printStackTrace();
}
点击TestHelper.tap(“APP_头”);
expect(“TRUE\u HOME\u按钮”,5000);
截屏者。截屏(“主屏幕2”,本/*活动*/);
}
}
根据(底部)的,您可以从ActivityInstrumentationTestCase2继承并使用
getActivity()
方法


但是,如前所述,该类被弃用,取而代之的是
ActivityTestRule
,它还有
getActivity()
方法

public void testExample(){
//当应用程序变得可见时,拍摄屏幕截图。
onView(isRoot());
截图(“主屏幕1”,getActivity());
}
根据(底部)的,您可以从ActivityInstrumentationTestCase2继承并使用
getActivity()
方法


但是,如前所述,该类被弃用,取而代之的是
ActivityTestRule
,它还有
getActivity()
方法

public void testExample(){
//当应用程序变得可见时,拍摄屏幕截图。
onView(isRoot());
截图(“主屏幕1”,getActivity());
}

您必须获得
场景
,然后在传递给
onActivity的回调中运行代码

@测试
public void getDeviceInfo(){
...
mActivityRule.getScenario()
.on活动(活动->屏幕截图。截图(“主屏幕2”,活动));
}

您必须获得
场景
,然后在传递给
onActivity的回调中运行代码

@测试
public void getDeviceInfo(){
...
mActivityRule.getScenario()
.on活动(活动->屏幕截图。截图(“主屏幕2”,活动));
}

对于Screenshotter,我需要传入对活动的引用。那么,在您的示例中,如何获得MainActivity实例的引用呢?感谢您澄清了这个问题,请参阅我的更新答案。
ActivityTestRule
也不推荐使用。应该使用
ActivityScenarioRule
进行屏幕截图,我需要传入对活动的引用。那么,在您的示例中,如何获得MainActivity实例的引用呢?感谢您澄清了这个问题,请参阅我的更新答案。
ActivityTestRule
也不推荐使用。应使用
ActivityScenarioRule