从命令行运行 AndroidTest 失败::app:connectedDebugAndroidTest

5

我正在使用Android Spring RestTemplate 来调用我的应用程序上的REST服务。 我添加了包括模拟REST服务调用的Android Instrumentation测试。当从Android Studio运行时,所有测试都正常运行,但是当使用终端运行时,测试无法加载Spring模拟类。

   ./gradlew clean :app:connectedDebugAndroidTest

build.gradle 中的 Spring 测试依赖
    androidTestCompile("org.springframework:spring-test:3.2.8.RELEASE")

如果我改为使用compile而不是androidTestCompile,Android测试会在终端上正常运行。由于我不想让这个依赖出现在我的生产APK中,所以需要帮助,谢谢。
以下是启动测试时的日志记录。
08-05 00:04:12.585 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.asm.commons.JSRInlinerAdapter. 08-05 00:04:12.587 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.asm.commons.TryCatchBlockSorter. 08-05 00:04:12.593 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.cglib.transform.AbstractProcessTask. 08-05 00:04:12.593 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.cglib.transform.AbstractTransformTask. 08-05 00:04:12.603 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.core.convert.support.ConvertingPropertyEditorAdapter. 08-05 00:04:12.610 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.core.io.ResourceEditor. 08-05 00:04:12.611 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.core.io.support.ResourceArrayPropertyEditor. 08-05 00:04:12.617 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.http.MockHttpInputMessage. 08-05 00:04:12.618 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.http.MockHttpOutputMessage. 08-05 00:04:12.618 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.http.client.MockClientHttpRequest. 08-05 00:04:12.618 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.http.client.MockClientHttpResponse. 08-05 00:04:12.618 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.jndi.ExpectedLookupTemplate. 08-05 00:04:12.619 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.jndi.SimpleNamingContext. 08-05 00:04:12.619 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.jndi.SimpleNamingContextBuilder. 08-05 00:04:12.619 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.DelegatingServletInputStream. 08-05 00:04:12.619 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.DelegatingServletOutputStream. 08-05 00:04:12.620 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockBodyContent. 08-05 00:04:12.620 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockExpressionEvaluator. 08-05 00:04:12.620 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockFilterChain. 08-05 00:04:12.620 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockFilterConfig. 08-05 00:04:12.620 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockHttpServletRequest. 08-05 00:04:12.621 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockHttpServletResponse. 08-05 00:04:12.621 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockHttpSession. 08-05 00:04:12.621 22274-22302/com.libin.androiduitesting E/TestLoader:找不到类:org.springframework.mock.web.MockJspWriter. 08-05 00:04:12.621 22274

testCompile 怎么办? - OneCricketeer
androidTestCompile更改为testCompile,正如@cricket_007所说。它是否有效? - piotrek1543
不行,那怎么办?在testCompile中添加的依赖项仅包括单元测试。我正在运行androidTest。它不会在androidTest中包含spring测试库。 - Libin
现在想要帮你的人看起来都像魔术师一样,好吧?如果可以的话,请添加您的 build.gradle 文件。 - piotrek1543
1个回答

1
似乎您缺少测试所需的模拟类。尝试下载spring-test jar并检查是否所有模拟类都在其中,例如,它应该从包org.springframework.mock.web.portlet导出类org.springframework.mock.web.portlet.MockClientDataRequest
您可能正在使用一些不幸的jar构建,其中模拟类的依赖关系丢失,就像this issue中一样。
此外,您可以尝试更新spring框架,最新版本已经是4.3.2。

不,我没有错过课程。当开始运行整个模块的测试时,它被删除了。如果测试是针对单个类或包运行的,则一切正常。 - Libin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接