当我使用机器人运行改造测试时,我遇到了两个错误,因为测试开始了



我在测试包中编写了这个测试,用于测试retrofit类,但即使在测试星之前,除了@Config中未知的"常量"外,还显示了此错误:

@Config(constants = BuildConfig.class, sdk =21,   manifest="app/manifests/AndroidManifest.xml")
@RunWith(RobolectricTestRunner.class)
public class MultiFactorAPITest {
private MainActivity mainActivity;
@Mock
private MultiFactorAPI mockMultiFactorAPI;
@Captor
private ArgumentCaptor<Callback<List<ValidatePhoneUserResponse>>>    callbackArgumentCaptor;
@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
    ActivityController<MainActivity> controller =    Robolectric.buildActivity(MainActivity.class);
    mainActivity = controller.get();
    // Then we need to swap the retrofit api impl. with a mock one
    // We store our Retrofit api impl as a static singleton in class RestClient, hence:
    RestClient.setApi(mockMultiFactorAPI);
    controller.create();
}

错误是:

现在必须显式声明注释处理器。 发现编译类路径上的以下依赖项包含注释处理器。 请将它们添加到注释处理器配置中。 - Auto-Service-1.0-RC4.jar (com.google.auto.service:auto-service:1.0-rc4(或者,设置 android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true 以继续以前的行为。 请注意,此选项已弃用,将来将被删除。有关更多详细信息,请参阅 https://developer.android.com/r/tools/annotation-processor-error-message.html。

我添加了这些行来漱口:

dependencies {
    implementation 'org.robolectric:robolectric:4.3'
    implementation "org.mockito:mockito-core:1.10.19"
    implementation 'org.hamcrest:hamcrest-library:1.1'
}

gradle.Madule

android{
testOptions {
    unitTests {
        includeAndroidResources = true
    }
}    }

在 gradle.app:

dependencies{
    classpath 'org.robolectric:robolectric-gradle-plugin:1.0.1'
}

在gradle.propertice中:

android.enableUnitTestBinaryResources=true
android.enableAapt2=false

我的问题通过将这段代码放在我的app.gradle中来解决:

dependencies{
    implementation 'com.squareup.retrofit2:retrofit:2.5.0'
    implementation 'com.squareup.okhttp3:mockwebserver:3.6.0'
}

1(在Android Studio中找到.gradle文件夹的位置,转到文件>设置,然后在搜索框中键入"gradle"。您将能够在那里选择正确的路径

2(删除 .gradle 目录(我的位置是 C:\Users\UserName.gradle(,然后重新启动 android studio。它将自动创建一个新的。

来自安卓工作室:构建项目错误 - 无法完成 Gradle 执行

最新更新