2014-03-28 72 views
1

所以我用android設置了一個gradle項目並試圖運行一些測試。不幸的是,他們似乎沒有。這可能是我錯過了一些明顯的東西,但在這裏...Gradle 1.11 androidTest類沒有運行

我運行gradle 1.11,據我所知,文件是新文件夾(自0.9我相信?),應該用於測試。

所以,我有我的TestClass ::

package se.coinhunter.multigradle.test; 

import org.junit.Test; 
import static org.junit.Assert.*; 

public class HelloAndroidTests { 

    @Test 
    public void testHelper() { 
     assertEquals(1,1); 
     } 
    } 

} 

生活在src/androidTest這裏是我的build.gradle:

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.3" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
    } 

    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

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

這是在提到一個多項目構建和子模塊依賴關係塊是一個普通的java項目,它有自己的scource和單元測試運行相當順利。我能夠指定它應該告訴我什麼時候運行它的測試,並給我一些反饋,並且工作正常。該項目使用

test { 
    testLogging { 
     events 'started', 'passed' 
    } 
} 

在其「build.gradle」中實現。對於android項目,我沒有遇到過這樣的事情。整個項目建立並運行,但我無法獲得測試運行,或者他們正在運行,但我沒有得到任何輸出。

回答

0

您正在使用jUnit 4(包含名稱爲「org.junit」的@Test註釋)。 Android gradle僅適用於jUnit 3(包名稱「junit.framework」,沒有註釋)。

Android測試在設備或仿真器上的Dalvik虛擬機上運行,​​因此測試類還應該擴展「AndroidTestCase」(或Android中的其他junit子類之一 - 取決於您測試的內容)。

更新:還添加以下到默認配置:

testInstrumentationRunner "android.test.InstrumentationTestRunner" 

testFunctionalTest true 

運行使用

gradle connectedCheck 
+0

感謝您的回覆測試。到目前爲止,我只需要運行一些簡單的單元測試來確認支持類的邏輯就像他們應該那樣工作。我改變了類來擴展AndroidTestCase,我刪除了org.junit的導入,並按照你的建議替換爲junit.framework。它仍然建立良好,但它看起來沒有在我執行gradle clean build時進行測試。構建任務應該做組裝和測試,所以一定有其他東西我失蹤.. – Coinhunter

+0

@Coinhunter - 它不是很清楚你的帖子,但是你的測試類在「src/androidTest/java」?你的帖子似乎暗示他們可能不在「androidTest」下的「java」目錄中。您可能還需要通過添加testInstrumentationRunner「android.test.InstrumentationTestRunner」 和testFunctionalTest true來更改「defaultConfig」。看到我更新的答案。 – AndroidGuy

+0

對不起,我可能已經做得更清楚了。該測試確實在src/androidTest/java中。我加了你提到的兩條線,但是沒有,仍然沒有問題,但沒有給我任何跡象表明這些測試實際上是在跑步。 – Coinhunter