gpt4 book ai didi

Android Robolectric 异常

转载 作者:行者123 更新时间:2023-11-29 00:54:25 25 4
gpt4 key购买 nike

我遇到了 Robolectric 库的问题。我正在使用 Robolectric 编写单元测试,它在本地工作,但是当我合并我的代码时,它在管道上崩溃(远程)。我正在使用“org.robolectric:robolectric:4.0.2”仅将此行添加到我的测试类就失败了:@RunWith(RobolectricTestRunner.class)

异常(exception)是:

FAILED org.apache.tools.ant.BuildException Caused by: org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException

最佳答案

我遇到了同样的问题:Robolectric 在本地运行良好,但一旦推送到 Jenkins,执行测试的 gradle 任务就会失败。

您可以执行 gradle 任务以使用 -i -d 标志运行测试以查看更多调试输出。

./gradlew -i -d test

对我来说,这表明 Jenkins 无法下载 Robolectric 依赖项:

13:58:43  13:58:42.904 [DEBUG] [TestEventLogger] com.my.package.Test > my_test_case STANDARD_ERROR
13:58:43 13:58:42.904 [DEBUG] [TestEventLogger] Downloading: org/robolectric/android-all/9-robolectric-4913185-2/android-all-9-robolectric-4913185-2.jar from repository sonatype at https://oss.sonatype.org/content/groups/public/

我可以通过告诉 gradle 在 Jenkins 上运行时使用我们的公司代理来解决这个问题。实现此目的的一种方法是将以下内容添加到您的 gradle.properties:

systemProp.http.proxyHost=http://proxy.host
systemProp.http.proxyPort=3128
systemProp.https.proxyHost=http://proxy.host
systemProp.https.proxyPort=3128

---- 编辑 ----

实际上,我为我的用例找到了一个更简洁的解决方案,然后配置代理:Robolectric 提供了一种配置它在运行时使用的存储库的方法(参见 http://robolectric.org/configuring/ )。这样我就可以告诉它使用我们的公司存储库。

android {
testOptions {
unitTests.all {
systemProperty 'robolectric.dependency.repo.url', 'https://local-mirror/repo'
systemProperty 'robolectric.dependency.repo.id', 'local'
}
}
}

关于Android Robolectric 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55951077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com