我在Android Studio 1.2.2中使用JUnit测试。测试没有问题。唯一令我困惑的是Android Studio无法解析实际的org.junit包。显然它确实解决了它,否则测试就不会运行。但是导入和注释在Android Studio中标记为红色,如此处所示。这是Android Studio中的错误吗?我尝试重建应用并重新启动Android Studio,但这并没有解决问题。
import org.junit.Test;
import static org.junit.Assert.*; // cannot resolve symbol 'junit'
public class CanadaTest
{
@Test
public void testCountryName() throws Exception
{
int x = 0;
x++;
}
}
答案 0 :(得分:18)
将它放在您的gradle文件中:
testCompile 'junit:junit:4.12'
答案 1 :(得分:10)
如果以上都不是,则可能是您的测试类位于错误的目录中。
我遇到了这个问题,因为我的文本类位于/main/java
目录而不是/test
目录中,而它们应该是......
简而言之:
确保您的测试类位于/test
目录中!
答案 2 :(得分:5)
我遇到了这个问题,结果发现这只是因为我将构建版本设置为“release”。一旦我将其更改回“debug”,Android Studio就会进行构建,当它完成时,junit注释上的红色错误消失了。 pic of build variant setting in android studio
答案 3 :(得分:1)
可能在你的 gradle 文件中有这样的内容:
configurations {
debugImplementation.exclude group: "junit", module: "junit"
}
删除一切后就可以了。
答案 4 :(得分:0)
如果您重新安装android studio,请记住默认情况下它不使用您的系统JDK(项目结构 - > SDK位置 - > jdk位置)。
答案 5 :(得分:0)
我结合了一些答案和一些改动来重新装扮它:
1。确保设置准备targetSdkVersion
,compileSdkVersion
和buildToolsVersion
。
2。我使用了最后的Android Gradle Plugin Version
和Gradle Version
。
3。在应用级别上将一些行添加到buil.gradle(我用'\ *'标记它们):
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "com.zima.testapp"
minSdkVersion 22
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" //*
apply plugin: 'maven' //*
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
dependencies {
testImplementation 'junit:junit:4.12' //*
implementation 'junit:junit:4.12' //*
androidTestImplementation 'com.android.support:support-annotations:28.0.0' //*
androidTestImplementation 'com.android.support.test:runner:1.0.2' //*
androidTestImplementation 'com.android.support.test:rules:1.0.2' //*
implementation fileTree(dir: 'libs', include: ['*.jar']) //*
implementation fileTree(dir: 'libs', include: 'Parse-*.jar') //*
}
}
4.build.gradle在项目级别上是这样的:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
apply plugin: 'java' //*
}
}
allprojects {
repositories {
jcenter()
google()
maven {
url "https://jitpack.io"
}
}
}
答案 6 :(得分:0)
问题
在工具测试(androidTest)中找不到 org.junit。 *的类和注释。这些类可以在junit测试(测试)中找到。
解决方案:
将 Build Variant 从 Release 切换到 Debug 。