Android ProviderTestCase2:在运行模式下失败,在调试模式下通过

Android ProviderTestCase2:在运行模式下失败,在调试模式下通过,android,junit,testcase,Android,Junit,Testcase,我正在使用ProviderTestCase2超级类测试数据库。以下是我的代码片段: public class MyProviderTest extends ProviderTestCase2<MyProvider>{ private static MockContentResolver resolver; private static IsolatedContext context; public MetaDataProviderTest() {

我正在使用ProviderTestCase2超级类测试数据库。以下是我的代码片段:

    public class MyProviderTest extends ProviderTestCase2<MyProvider>{

    private static MockContentResolver resolver;
    private static IsolatedContext context;
    public MetaDataProviderTest() {
    super(MyProvider.class, Provider.AUTHORITY);
}


@Override
protected void setUp() throws Exception {
    try{
        super.setUp();
        resolver = getMockContentResolver();


    } catch(Exception e){

    }

}


}

   public void testfirst(){

   Cursor cursor =   resolver.query(ProviderContract.Channels.CHANNEL_URI,null,null,null,null);
       ....
    }
  }

当我调试上面的代码时,我得到了通过的结果。当我运行它时,我得到Null游标,这意味着并没有像channel这样的表。请帮忙解决这个问题。我哪里出错了?

有比赛条件。在设置中引入延迟。很好用。但我不知道这是否是精确的解决方案。

您应该编写代码:

MockContentResolver.addProvider(authority, yourprovider);
那就试试吧