找到了!
看来我误解了“Runner”类的用法。我需要创造我自己的跑步者来延长AndroidJUnitRunner:
import android.app.Application;
import android.content.Context;
import android.support.test.runner.AndroidJUnitRunner;
// Our own test runniner - uses MockMyApplication as a mocked app class
public class MyAndroidTestRunner extends AndroidJUnitRunner {
@Override
public Application newApplication(ClassLoader cl, String className, Context context) throws IllegalAccessException, ClassNotFoundException, InstantiationException {
return super.newApplication(cl, MockMyApplication.class.getName(), context);
}
}
然后在build.gradle(app)中,testInstrumentRunner条目需要指向新的runner:
testInstrumentationRunner "com.winwaed.xyzapp.MyAndroidTestRunner"
由于newApplication重写位于错误的位置,应该从我的测试类中删除它。此外,测试类不再扩展任何类。(也就是说,我基本上把跑步者和测试类分开了——正如我所说,我误解了跑步者类)