java - 没有错误仍然是 Android Studio 说 "no tests were found"

标签 java android testing android-studio android-instrumentation

我正在尝试为我的 MainActivity 编写仪器测试。我按照给出的答案 here . Android Studio 仍然找不到任何测试。我在 androidTest 文件夹中有 ApplicationTest.java 类。这是类(class)的内容:

package com.example.monicamarcus.mymusicplayer

import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import com.example.monicamarcus.mymusicplayer.MainActivity;

public class ApplicationTest extends ActivityInstrumentationTestCase2<MainActivity> { 
    public ApplicationTest() {
        super(MainActivity.class);
    }

    public void testNextTrackButton() throws Exception {
        Activity activity = getActivity();

        Button nextButton = (Button) activity.findViewById(R.id.nextTrackBt);
        activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                nextButton.performClick();
                assertTrue(currentPosition < songList.size());
            }});
        activity.finish();
    }
}

这个测试类有什么问题?还是通过测试?我没有收到任何错误,它只是找不到要运行的任何测试。运行 ApplicationTest 后,输出以以下行结尾:

Running tests
Test running startedFinish
Empty test suite.

这是应用程序的 build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.monicamarcus.mymusicplayer"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        testApplicationId "app.src.androidTest.java.com.example.monicamarcus.mymusicplayer"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
    }
    buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

android {
    useLibrary 'org.apache.http.legacy'
}

android {

    sourceSets {

        androidTest {
            java.srcDirs = ['androidTest/java']
        }

    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    androidTestCompile 'junit:junit:4.12'
}

这是测试运行的输出:

Testing started at 1:56 PM ...
Target device: gt_i8190n-4790068ee9a750c6
Installing APK: /Users/monicamarcus/AndroidStudioProjects/MyMusicPlayer/app/build/outputs/apk/app-debug.apk
Uploading file to: /data/local/tmp/com.example.monicamarcus.mymusicplayer
Installing com.example.monicamarcus.mymusicplayer
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.example.monicamarcus.mymusicplayer"
pkg: /data/local/tmp/com.example.monicamarcus.mymusicplayer
Success


Installing APK: /Users/monicamarcus/AndroidStudioProjects/MyMusicPlayer/app/build/outputs/apk/app-debug-androidTest-unaligned.apk
Uploading file to: /data/local/tmp/app.src.androidTest.java.com.example.monicamarcus.mymusicplayer
Installing app.src.androidTest.java.com.example.monicamarcus.mymusicplayer
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/app.src.androidTest.java.com.example.monicamarcus.mymusicplayer"
pkg: /data/local/tmp/app.src.androidTest.java.com.example.monicamarcus.mymusicplayer
Success


Running tests
Test running startedFinish
Empty test suite.

在我做了一些更改后(如果有人感兴趣,我可以发布它们)运行仪器测试类的结果如下所示:“运行测试。测试运行开始。测试运行失败:没有测试结果。空测试套件。 “没有人有过此类测试的经验吗?

最佳答案

build.gradle中,testApplicationId看起来很奇怪。我会删除它和 testInstrumentationRunner。默认值应该没问题。具体来说,如果您没有指定 testApplicationId,它将通过将 ".test" 附加到您的 applicationId 来创建。

关于java - 没有错误仍然是 Android Studio 说 "no tests were found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35426990/

相关文章:

javascript - 如何设置 ListView 的每个单元格具有单独的白色背景?

ruby-on-rails - 如何测试特定 Assets (JS、CSS)在布局中是否可用?

unit-testing - 为什么在 JMock 中使用 .proxy()?

SonarQube 的 Java 文档

java - 用 Java 将 dpi 元数据写入 jpeg 图像

android - flutter WebViewController如何添加标题

去测试覆盖,在不同的包上

java - 生成唯一负数的非阻塞算法

java - 延迟初始化 - 测试 CardLayout 是否添加了特定面板

android - 发现名称 : isImportantForAccessibility 的冲突 setter/getter