我试图在新的Android项目中创建浓缩咖啡UI测试,但我面临以下问题。
如果我试图创建一个空的测试类:
import android.content.Intent;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.test.ActivityInstrumentationTestCase2;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
@RunWith(AndroidJUnit4.class)
public class LoginActivityTest extends ActivityInstrumentationTestCase2<LoginActivity> {
}
我总是收到以下错误消息:
cannot resolve symbol AndroidJUnit4.class
几乎所有导入的库都标记为未使用。
建筑gradle文件包含以下内容:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.some.thing.xxx"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
packagingOptions {
exclude 'LICENSE.txt'
}
}
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://jitpack.io" }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.google.android.gms:play-services:7.8.0'
compile 'com.mcxiaoke.volley:library:1.0.18'
compile 'com.orhanobut:logger:1.11'
// App dependencies
compile 'com.android.support:support-annotations:23.0.0'
// TESTING DEPENDENCIES
androidTestCompile 'com.android.support.test:runner:0.3'
// Set this dependency to use JUnit 4 rules
androidTestCompile 'com.android.support.test:rules:0.3'
// Set this dependency to build and run Espresso tests
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2'
// add this for intent mocking support
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2'
// add this for webview testing support
androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2'
// Set this dependency to build and run UI Automator tests
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2'
}
如果我把这些设置放在我的其他测试项目上,它是有效的,所以我不知道会出什么问题?
我遵循了这个教程:”
http://www.vogella.com/tutorials/AndroidTestingEspresso/article.html
我试图通过以下SO问题来解决它:无法解决符号“AndroidJUnit4”
但是没有运气。
非常感谢您的建议。
您收到该错误消息的原因可能是测试所在的文件夹与规范不匹配。该文件夹必须是src/androidTest/java。
看看这篇文章,它说。。。
运行仪表化单元测试要运行仪表化测试,请按照以下步骤操作:
通过单击工具栏中的“同步项目”,确保您的项目与Gradle同步。以以下方式之一运行测试:要运行单个测试,请打开“项目”窗口,然后右键单击测试并单击“运行”。要测试类中的所有方法,请在测试文件中的类或方法上单击鼠标右键,然后单击“运行”。要运行目录中的所有测试,请右键单击该目录并选择运行测试。Gradle的Android插件编译位于默认目录(src/androidTest/java/)中的插入指令的测试代码,构建测试APK和生产APK,在连接的设备或模拟器上安装这两个APK,并运行测试。Android Studio然后在运行窗口中显示检测测试执行的结果。
因此,各位,对于仪器测试,文件夹必须是(不要忘记案例)
src/androidTest/java
对于本地测试,文件夹必须是
src/test/java
然后,您可以将程序包文件夹与应用程序包匹配
希望,这对社区有帮助!
我通过手动导入以下内容来解决它,我认为它应该自动导入,但没有:
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard;
import static android.support.test.espresso.action.ViewActions.typeText;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
我也尝试过vogella的相同教程,遇到了很多问题。我首先遇到的一个问题是v23 libs和Espresso libs的注释版本之间的依赖冲突。
然后,我发现了另一个最近更新的教程从罗杰胡“UI测试与浓缩咖啡”。我注意到一句话,意式浓缩咖啡还不支持Marshmallow。
依赖项添加如下:
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2') {
// Necessary if your app targets Marshmallow (since Espresso
// hasn't moved to Marshmallow yet)
exclude group: 'com.android.support', module: 'support-annotations'
}
androidTestCompile('com.android.support.test:runner:0.3') {
// Necessary if your app targets Marshmallow (since the test runner
// hasn't moved to Marshmallow yet)
exclude group: 'com.android.support', module: 'support-annotations'
}
这解决了我的依赖冲突,我没有看到任何其他问题发生。
在Espresso中,应用程序启动,测试以以下代码开始:onView(withId(r.id.choosebooktitle)).perform(click()); 这会崩溃,因为显示器仍然显示启动屏幕,而chooseBookTitle只有在之后才可见。如何防止谷歌-浓缩咖啡会在它出现之前点击键? (我不想插入等待循环,而是保持事件驱动。在更糟糕的情况下,我回到Robotium)
本文向大家介绍Android 设置意式浓缩咖啡,包括了Android 设置意式浓缩咖啡的使用技巧和注意事项,需要的朋友参考一下 示例 在build.gradle您的Android应用模块的文件中,添加下一个依赖项: 在文件中AndroidJUnitRunner为testInstrumentationRunner参数指定build.gradle。 此外,添加此依赖项以提供意图模拟支持 并将其添加为w
在我的主要活动中,我有initUi函数,它将触发对webviewActivity的意图,在webviewActivity中,有一个FragWebView,其中加载了url。 以下是来自FragWebView的示例代码: 我从我的主要活动中传递打开webview的意图是: 请让我知道如何解决这个问题。 问候
我不能进口浓缩咖啡套餐 这是我的应用程序分级文件 onView(with text(“hello world!”)).check(matches(issplayed())); 我是不是漏掉了什么?
问题内容: 我正在尝试为我的应用添加loginfacebook。但是,当我添加执行此操作所需的存储库时。它导致了错误。AndroidJUnit4现在无法解析。 ExampleInstrumentedTest.java 这是我的build:gradle(app) 问题答案: 尝试 添加以下上面的依赖项部分
我正在尝试为我的应用程序添加loginfacebook。但当我添加了一个存储库,这是做这件事所需要的。它导致了一个错误。AndroidJUnit4现在无法解析。 ExampleInstrumentedTest.java 这是我的构建:Gradle(应用程序)