2014-03-28 1 views
1

그래서 나는 android로 gradle 프로젝트를 설정하고 실행하기위한 몇 가지 테스트를 시도했다. 불행하게도 그들은 그렇게 보이지 않습니다. 그것은 명백한 무언가를 잃어 버렸을 가능성이 있지만 여기에 간다 ...Gradle 1.11 androidTest classes are

나는 gradle 1.11을 실행 중이다. 테스트를 위해 사용해야하는 새 폴더 (새 문서는 0.9라고 생각하기 때문에?)를 이해하고있다. 이것은에서 언급 한 여러 프로젝트 빌드 및 서브 모듈은

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') 
} 

:

그래서 난 내 TestClass에를 :: 여기 src/androidTest에 살고

package se.coinhunter.multigradle.test; 

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

public class HelloAndroidTests { 

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

} 

내 build.gradle되어 있습니다 의존성 블록은 '자체 소스와 단위 테스트가 매우 원활하게 실행되는 평범한 자바 프로젝트입니다. 나는 그것이 테스트를 실행하고 나에게 약간의 피드백을 줄 때 그것이 나에게 말해야한다는 것을 지정할 수 있었다. 그리고 그것은 잘 동작한다. 이는 해당 프로젝트에서 'build.gradle'에

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

을 사용하여 달성되었습니다. 나는 안드로이드 프로젝트를 위해 이와 같은 것을 발견하지 못했다. 전체 프로젝트가 빌드되고 실행되지만 테스트를 실행하지 못하거나 실행 중이지만 출력이 나오지 않습니다.

답변

0

jUnit 4 (@Test 주석과 함께 패키지 이름 "org.junit")를 사용하고 있습니다. Android gradle은 jUnit 3 (주석이없는 패키지 이름 "junit.framework")에서만 작동합니다.

Android 테스트는 장치 또는 에뮬레이터의 Dalvik 가상 시스템에서 실행되므로 테스트 클래스는 "AndroidTestCase"(또는 테스트중인 항목에 따라 Android의 다른 junit 하위 클래스 중 하나)를 확장해야합니다.

업데이트 : 또한 추가 설정 기본값으로 다음 답장을 보내

gradle connectedCheck 
+0

감사를 사용하여 테스트를 실행

testInstrumentationRunner "android.test.InstrumentationTestRunner" testFunctionalTest true 

합니다. 현재로서는 지원 클래스의 논리 등이 제대로 작동하는지 확인하기 위해 간단한 단위 테스트를 실행해야합니다. AndroidTestCase를 확장하도록 클래스를 변경했으며 제안한대로 org.junit 가져 오기를 제거하고 junit.framework로 바꿨습니다. 그것은 여전히 ​​잘 지내고 있지만, 그래 클 빌드를 할 때 테스트를 실행하지 않는 것처럼 보입니다. 빌드 작업은 어셈블 및 테스트를 모두 수행해야하므로 누락 된 것이 있어야합니다. – Coinhunter

+0

@Coinhunter - 게시물에서 명확하지 않지만 "src/androidTest/java"에 테스트 클래스가 있습니까? 귀하의 게시물은 "androidTest"아래의 "java"디렉토리에 있지 않을 수도 있음을 제안하는 것으로 보입니다. testInstrumentationRunner "android.test.InstrumentationTestRunner" 및 testFunctionalTest를 true로 설정하여 "defaultConfig"를 변경해야 할 수도 있습니다. 내 업데이트 답변을 참조하십시오. – AndroidGuy

+0

죄송합니다. 아마도 조금 더 명확하게 만들 수 있었을 것입니다. 테스트는 src/androidTest/java에 있습니다. 언급 한 두 줄을 추가했으나 여전히 괜찮 았지만 테스트가 실제로 실행 중임을 알려주지 않았습니다. – Coinhunter