Android Studio“没有发现测试”
有没有人能够得到测试运行在Android Studio(从GUI而不是终端),我一直无法从GUI运行测试。
每次尝试通过GUI运行测试时,我都会收到以下消息:
我能够使用以下命令从终端运行测试:
./gradlew connectedAndroidTest
我在Mac OSX上运行Android Studio 0.5.2,使用Gradle 1.11和Plugin 0.9.0
我的项目结构如下;
MyProject/ src/ androidTest/ java/ com.myproject.app.test/ … (tests source code) … main/ java/ com.myproject.app/ … (source code) … res/ … (resources code) … build.gradle
我的build.gradle文件看起来类似于以下内容:
… android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { versionCode 12 versionName "2.0" minSdkVersion 9 targetSdkVersion 19 testPackageName "com.test.foo" testInstrumentationRunner "android.test.InstrumentationTestRunner" } } …
如果有人有任何建议,我会很乐意在这里。
今天,我有一些与Espresso测试相同的问题,这让我发疯,因为一切都很正常。 最后我发现这个问题是因为用@BeforeClass
注解的方法(用于标记在类中的任何测试方法之前必须执行的方法的标注)引发异常。 之所以花费更多的时间,是因为如果在该方法中出现错误,异常的堆栈跟踪不会显示在“ 运行”选项卡的“ 日志”窗口中 ,而是显示在“ Android监视器”选项卡的 “ 日志”窗口中
如果你想重现这个问题,只需把它添加到你的测试类:
@BeforeClass public static void setupClass() { throw new RuntimeException("Sorry dude, you won't find any test!"); }
好的,我找到了我的问题的原因。
在位于我的项目的.idea文件夹中的misc.xml文件中, ProjectRootManager组件的属性值无效,如下所示:
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6 (3)" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component>
所以把project-jdk-name属性值改为“1.6” ,为我解决了这个问题。 下面是我更新了数值后的样子。
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component>
希望这可以帮助任何人。
对我来说这是愚蠢的事情。 简单地从Release
build variant切换到Debug
解决了这个问题。
当运行配置的类型不正确时,可能会发生这种情况。
对我来说,用Kotlin运行一个Espresso测试时会出错:它会以某种方式创建一个错误类型的Android JUnit测试。 手动创建Android Instrumentation测试解决了这个问题。
这是非常简单的问题,只需按下Alt + Shift + F10并以这种方式运行:) PS:如果没有工作,请尝试Shift + F10 。