当前位置: 首页 > 知识库问答 >
问题:

使用WireMockRule运行Android UI测试时的java.lang.NoClassDeffoundError

殳智志
2023-03-14

我花了相当长的时间试图弄清楚如何在使用WiRemock运行Android Espresso测试时修复这个错误。

java.lang.NoClassDefoundError:未能解析:loRg/Apache/HTTP/Protocol/HttpRequestExecutor

@Rule
public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8080));
androidTestImplementation 'androidx.test:rules:1.1.0'

androidTestImplementation("com.github.tomakehurst:wiremock:2.18.0") {
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    exclude group: 'asm', module: 'asm'
    exclude group: 'org.json', module: 'json'
    exclude group: 'com.google.guava', module:'guava'
}

androidTestImplementation("org.apache.httpcomponents:httpclient-android:4.3.5.1")
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/protocol/HttpRequestExecutor;
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:695)
at com.github.tomakehurst.wiremock.http.HttpClientFactory.createClient(HttpClientFactory.java:76)
at com.github.tomakehurst.wiremock.http.ProxyResponseRenderer.<init>(ProxyResponseRenderer.java:58)
at com.github.tomakehurst.wiremock.core.WireMockApp.buildStubRequestHandler(WireMockApp.java:131)
at com.github.tomakehurst.wiremock.WireMockServer.<init>(WireMockServer.java:73)
at com.github.tomakehurst.wiremock.junit.WireMockRule.<init>(WireMockRule.java:43)
at com.github.tomakehurst.wiremock.junit.WireMockRule.<init>(WireMockRule.java:39)

我该怎么修好它?

共有1个答案

谢铭
2023-03-14

我自己用wiremock单机版来修复它。

androidTestImplementation "com.github.tomakehurst:wiremock-standalone:2.26.3"
 类似资料:
  • 我们已经为spark编写了单元测试,在本地模式下有4个线程。 当一个接一个地启动时,例如通过intellij或sbt testOnly,每个测试都运行良好。 当用sbt测试启动时,它们会出现如下错误 我们使用的是一个带有多个子项目的sbt项目,其定义如下:

  • 我试图使用localstack对SQS运行一些测试。然而,我一直得到一个502。这适用于同事,但在我的本地机器、我们的管道或docker上不起作用。错误到处都是一样的,所以我发送docker版本,因为它可能更容易显示安装了什么。 基本上,我正在创建一个docker镜像,安装java、python,并从/repo文件夹执行gradle构建,执行集成测试。 我的测试代码如下所示: 故障原因: 有什么想

  • 我可以成功地构建和运行我的Android应用程序在我的调试和发布变体没有问题。然而,当我尝试运行我的新单元测试时(我以前从来没有过),我得到了可怕的DexIndexOverflowException。我怀疑不是与我的单元测试一起运行的,而是与我的正常调试和发布构建类型一起运行的。 在单元测试运行配置中运行需要做什么?我搜索了Gradle文档、文档和Android Studio文档,但什么也没有找到

  • 我的Android项目有几个模块(一个应用程序和多个库),当我尝试从命令行运行所有单元测试(RobolectRic3.8)时 我得到以下错误(不是当我从Android Studio运行相同的任务时) 每个模块上的build.gradle文件包含以下配置 application模块定义了两个在同一维度中运行的味道 知道吗?

  • 我创建了一个简单的测试来尝试Junit 5: 这就是我使用的依赖关系: 堆栈跟踪是下一步: 知道哪里出了问题吗?

  • 我正在为java应用程序编写junit测试用例这里是junit测试代码 在eclipse中运行这段代码后,我会收到以下错误 下面是我的主要java代码 有人能帮忙解决这个错误吗?在这里,我不能单独运行两个测试函数,它们运行得很好,如何一起运行它们