Android TestRunner 由于 IllegalState 异常而失败

2022-09-03 08:13:22

我正在运行android Instrumentation测试到单元测试活动,特别是如果WebView已加载或未加载代码,如下所示,但每次我都会得到异常

运行测试 测试运行已启动 测试未能运行到完成。原因:“由于'java.lang.IllegalStateException',检测运行失败”。检查设备日志详细信息 测试运行失败:由于“java.lang.IllegalStateException”,检测运行失败

没有Logcat日志,只有控制台中的此消息,在Genymotion和设备上都尝试了Android 5.0。

代码如下

public class WebViewActivityTest extends ActivityInstrumentationTestCase2 <WebViewActivity> {

    WebView webView;
    WebViewActivity testActivity;

    public WebViewActivityTest()
    {
        super(WebViewActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        testActivity = getActivity();

    }

    public void testWebView()
    {
        webView = (WebView)testActivity.findViewById(R.id.webView);
        assertNotNull(webView);
    }

    public void testPreconditions() {

        assertNotNull("Webview activity is null",testActivity);
    }
}

我尝试过搜索,但不知道为什么会发生这种异常,请帮忙。


答案 1

在 try stetment 之后添加一个 catch 语句,并为 try 语句提供一个 exeption。syntext可能有点偏差,但这应该可以解决您的问题

public class WebViewActivityTest extends ActivityInstrumentationTestCase2 <WebViewActivity> {

WebView webView;
WebViewActivity testActivity;

public WebViewActivityTest()
{
    super(WebViewActivity.class);
}

@Override
protected void setUp() throws(exeption e) {
    super.setUp();
    testActivity = getActivity();
    catch(exeption e)
    System.out.println("Nope!);

}

public void testWebView()
{
    webView = (WebView)testActivity.findViewById(R.id.webView);
    assertNotNull(webView);
}

public void testPreconditions() {

    assertNotNull("Webview activity is null",testActivity);
}

}


答案 2

推荐