我将Espresso添加到Android Studio中的项目中。我已经安装了支持存储库,实际上已经使用了它的部分。然后我根据安装说明将这些依赖项添加到app/build.gradle
:
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
在编写我的测试时,auto complete会识别出工件的存在。但是当我跑步时我得到了这个错误:
error: package android.support.test does not exist
error: package org.junit does not exist
以及这两个的其他一些子包。
所以我从build.gradle中删除了上面的两行,然后尝试在GUI项目结构/ modules / dependencies中添加
既没有&#39; com.android.support.test.espresso:espresso-core:2.0&#39; nor&#39; com.android.support.test:testing-support-lib:0.1&#39;显示为可供选择的选项。但是,在我的文件系统中,<sdk>\extras\android\m2repository\com\android\support\test\espresso\espresso-core\2.0\
包含espresso-core-2.0.aar
的完整文件,我可以通过winzip打开并在其中导航。在文件系统中,它看起来与通过SDK Manager和Support Repository安装的其他库没什么区别。
为什么android studio不识别这个库?
非常感谢您的帮助,我找不到任何其他人似乎遇到了这个问题。这是我能找到的最接近的地方:Why do packages from library module does not exist upon compilation, even when Android Studio shows no errors in code?
我尝试过两次重新安装支持信息库。
答案 0 :(得分:35)
我遇到了同样的问题,我发现androidTestCompile的依赖关系只在调试版本变体中默认可见。
您可以通过将其添加到build.gradle来更改要测试的构建变体:
android {
...
testBuildType "staging"
}
其中“staging”只是一个示例,您应该使用其中一个构建变体替换它。
请记住,只测试了一种变体。
此处提供更多信息https://code.google.com/p/android/issues/detail?id=98326
答案 1 :(得分:13)
我也遇到过这个问题,我在Google推荐的src / androidTests下安装了我的android测试用例,但这会导致build.gradle出现问题:
sourceSets {
main {
java.srcDirs = ['src']
}
}
有了上述内容,它试图在正常的 debug 编译目标中编译我的所有测试用例,该目标不包括espresso和其他依赖项,因为它们列在<< EM> androidTestCompile
最后,我通过从编译中排除androidTest子目录来修复此问题,并将androidTest的根目录设置为适当的目录。
sourceSets {
main {
java.srcDirs = ['src']
java.excludes = ['androidTest/**']
}
androidTest.setRoot('src/androidTest')
}
答案 2 :(得分:12)
有两种不同的测试依赖项配置:
testCompile
- 由单元测试套件使用(位于src/test
文件夹中,由./gradlew test
调用)androidTestCompile
- 由集成测试套件(位于src/androidTest
文件夹并由./gradlew connectedAndroidTest
调用)使用。我怀疑你的测试代码位于错误的测试套件位置
在您的情况下,您的测试代码应该进入src/androidTest
文件夹,并且应该通过运行./gradlew connectedAndroidTest
执行测试套件
答案 3 :(得分:10)
我遇到了同样的问题,它是通过从Android Studio的Build选项卡中点击Clean Project来解决的。
点击清洁项目后,观察Gradle控制台是否存在潜在错误,如果成功完成清洁,只需进入任何一个测试类并输入&#34; Espresso&#34;智能代码完成应提供建议。在此之后,当您使用Espresso时,所有内容都应自动导入。
希望这有帮助!
答案 4 :(得分:3)
我的解决方案更简单,更简单,我只是去了Android Studio File>Invalidate Caches/Restart
并且它运行正常,似乎android studio保留了一些不会用Rebuild/Clean
清理的缓存。
答案 5 :(得分:0)
我在将我的某个应用转发到新的视觉范例时遇到了这个问题,并发现我的应用级build.gradle缺少以下内容:
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
答案 6 :(得分:0)
1.单击工具栏中“运行”按钮旁边的下拉菜单。
2.单击编辑配置
3.现在删除除app(在Android App中)和默认值之外的所有其他内容。
这对我有用。希望它有所帮助。