如何在命令行上使用gradlew运行特定测试?

时间:2015-09-21 18:13:04

标签: android unit-testing testing junit gradle

我对Android gradle构建很新。 我构建和应用程序,它工作得很好。现在我想在其中添加单元测试和仪器测试,并在命令行上执行它们。

我必须测试文件:

  • MainActivityTest.java < ==此次使用的仪器测试应在设备上执行。
  • CustomerFragmentTest.java< ==这个使用的junit测试只能在JVM上执行。

现在从Project Directory的命令行调用了

gradlew test --continue

它执行了所有测试(包括JVM测试和设备测试),而我希望只运行JVM测试。

所以:

  
      
  1. 如何仅在JVM上运行junit测试用例(忽略测试测试用例)?
  2.   
  3. 当我拨打gradlew connectedCheck时,我收到了执行失败的消息:

         

    在根项目'Android5Camera'中找不到“任务'connectedCheck'”

         

    如何执行检测测试   (在设备上)使用命令行?

  4.   

感谢您提供任何帮助和建议。

这是我的app.gradle配置,以备你需要:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.huynhle.android5camera"
        minSdkVersion 16
        targetSdkVersion 22
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets {
        main {
            java.srcDirs = ['src/main/java']
        }
        main.setRoot('src/main')
        androidTest.setRoot('src/test')
    }
}

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'

    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'

    androidTestCompile 'com.android.support.test:runner:0.3'
    androidTestCompile 'com.android.support.test:rules:0.3'
}

1 个答案:

答案 0 :(得分:0)

我可以假设,您已将两个类文件放在同一目录 src / test 中。此目录仅适用于单元测试,并且测试运行器不区分Intsrumentation或简单JUnit之间的测试文件。这就是gradlew test --continue命令启动这两个类的原因。 Android Instrumentation Tests类应该位于 src / androidTest 目录中,并且应该是InstrumentationTestCase或AndroidTestCase的继承人(直接或否定),然后您可以使用gradlew connectedCheck启动检测测试。