Android Studio 3.0“JUnit版本3.8或更高版本”

试图遵循这 一点,但没有任何运气。

我正在使用Android studio 3.0和junit 4.12。 Windows 10。

我曾经尝试过:

  1. 移动junit依赖项(试过测试编译和实现范围) 在这里输入图像描述
  2. 删除运行中的测试 – 编辑配置… – 删除Android JUnit和Android应用程序下的所有 在这里输入图像描述


我的分级看起来像这样:

apply plugin: 'kotlin' dependencies { implementation project(':domain') compile fileTree(include: ['*.jar'], dir: 'libs') testCompileOnly 'junit:junit:4.12' testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'io.reactivex.rxjava2:rxkotlin:2.1.0' testImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" testImplementation 'com.nhaarman:mockito-kotlin:1.1.0' testImplementation 'org.amshove.kluent:kluent:1.14' implementation 'com.google.api.client:google-api-client-repackaged-com-google-common-base:1.2.3-alpha' implementation 'com.squareup.retrofit2:retrofit:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.3.0' implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' } 

我的测试看起来像这样:

 package ***.roompanel.data; import com.google.gson.FieldNamingStrategy; import com.google.gson.Gson; import com.google.gson.TypeAdapterFactory; import ***.roompanel.data.RestApi.ApiFieldNamingStrategy; import ***.roompanel.data.RestApi.ApiGsonBuilder; import ***.roompanel.data.RestApi.ApiItemTypeAdapterFactory; import ***.roompanel.data.RestApi.ApiService; import ***.roompanel.data.RestApi.IApiService; import ***.roompanel.data.repository.EventRepository; import ***.roompanel.domain.model.event.Event; import ***.roompanel.domain.repository.IEventRepository; import org.junit.Before; import org.junit.Test; import java.util.Date; import java.util.List; import static org.junit.Assert.assertNotNull; public class EventRepositoryTest { IEventRepository repo; @Before public void setUp() { TypeAdapterFactory typeAdatperFactory = new ApiItemTypeAdapterFactory(); // system to FieldNamingStrategy fieldNamingStrategy = new ApiFieldNamingStrategy(); Gson gson = new ApiGsonBuilder(typeAdatperFactory, fieldNamingStrategy).build(); IApiService service = new ApiService(gson); this.repo = new EventRepository(service); } @Test public void events_void_success() throws Exception { Date start = new Date(2017,10,01); Date end = new Date(2017,10,12); List<Event> events = (List<Event>) repo.load(start, end); assertNotNull(events); } } 

更新:

./gradlew测试

25秒制造成功53个可执行任务:30个执行,23个最新

堆栈跟踪:

 java.lang.RuntimeException: Stub! at junit.runner.BaseTestRunner.<init>(BaseTestRunner.java:5) at junit.textui.TestRunner.<init>(TestRunner.java:54) at junit.textui.TestRunner.<init>(TestRunner.java:48) at junit.textui.TestRunner.<init>(TestRunner.java:41) at com.intellij.rt.execution.junit.JUnitStarter.junitVersionChecks(JUnitStarter.java:224) at com.intellij.rt.execution.junit.JUnitStarter.canWorkWithJUnitVersion(JUnitStarter.java:207) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:61) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131) 

这不是解决方案,只是一个混乱的解决方法(因为它花费了太多的时间来解决它):

卸载并再次安装android studio 3.0。 不要更新kotlin插件和android studio到更新的版本。