簡體   English   中英

讓gradle執行JUnit Test(Android應用程序,Android Studio)

[英]getting gradle to execute JUnit Test (Android app, Android Studio)

我目前正在開發一個Android應用程序,最近從Eclipse切換到Android Studio(不是我的想法;))。 但是我想配置一個jenkins服務器來定期運行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'
    }

Testclass 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,我真的不知道我做錯了什么。 在互聯網上我只找到有類似問題的人,但沒有一個人有一個適合我的解決方案。 如果你能指出我正確的方向,我會很高興的!

問候

錯誤消息告訴我們沒有這樣的屬性unitTest。 使用instrumentTest(舊)或androidTest(新)聲明測試依賴性。

Android sdk已經有了junit 3依賴。 所以只需刪除該行

在Android Studio中,單元測試似乎不是開箱即用的。 我有一個工作的Gradle配置,在一些小配置后使用Robolectric運行單元測試。

見: Gradlectric

另外要指定一個不同的測試文件夾,你需要使用androidTest

sourceSets {
        androidTest {
            setRoot('src/test')
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM