一尘不染

顺利执行JUnit Test(Android应用程序,Android Studio)

jenkins

我目前正在开发一个Android应用程序,最近从Eclipse切换到Android
Studio(这不是我的想法;))。但是我想配置一个詹金斯服务器来定期运行JUnit测试和其他测试。为此,我尝试配置gradle
buidlfile。这是我的设置:

目录结构:

-app

    -src
        -main
        -test

build.gradle文件:(位于“ src / build.gradle”中)

    apply plugin: 'android'

    sourceSets {
        unitTest {
            java.srcDir file('src/test/java/[appName]/app')
        }
    }

    android {
        compileSdkVersion 19
        buildToolsVersion '19.0.3'

        defaultConfig {
            minSdkVersion 14
            targetSdkVersion 19
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
        sourceSets {
            instrumentTest.setRoot('src/test')
        }
    }

    task unitTest(type:Test) {
        testClassesDir = sourceSets.unitTest.output.classesDir
        classpath = sourceSets.unitTest.runtimeClasspath
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:support-v13:+'
        compile 'com.android.support:appcompat-v7:+'
        compile 'com.android.support:support-v4:+'

        unitTest 'junit:junit:4.10'
    }

测试类MainActivityTest.java

    package [appName].app;

    import android.test.InstrumentationTestCase;
    import junit.framework.Assert;

    public class MainActivityTest extends InstrumentationTestCase{

        public void testMain(){
            Assert.assertEquals(1,2);
        }
    }

最重要的是错误消息:

    Error:(41, 0) Build script error, unsupported Gradle DSL method found: 'unitTest()'!

这是我第一次使用gradle和Android
Studio,但我真的不知道我在做什么错。在互联网上,我只发现有类似问题的人,但没有人找到对我有用的解决方案。如果您能指出正确的方向,我将非常高兴!

问候


阅读 650

收藏
2020-07-25

共1个答案

一尘不染

错误消息表明没有此类属性unitTest。测试依赖项通过instrumentTest(旧)或androidTest(新)声明。

Android SDK已带有junit 3依赖项。因此,只需删除该行

2020-07-25