[Android] Android Studio에 JUnit 붙이기

업데이트(2018.12.26) : 2018년 3월에 작성한 자료로 현재의 Android Studio 버전과 다를 수도 있습니다.

Android Studio에 JUnit을 붙이고 간단한 테스트를 진행해 보기로 한다.


환경 및 선수조건

  • Android Studio


app/build.gradle에 코드 추가

  • JUnit과 Espresso 그리고 그 둘을 위한 annotations과 test:runner를 gradle에 아래처럼 추가합니다.

build.gradle

...
dependencies {
    ...
    testCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support:support-annotations:25.1.0'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
    androidTestCompile 'com.android.support.test:runner:0.5'
    ...
}
...


java 테스트 폴더 생성하기

  • JUnit으로 테스트를 하려면 src폴더 안에 test 폴더를 만들고 그 안에 또 java라는 폴더를 생성합니다.
  • 즉, src/test/java라는 폴더 생성
  • SampleTest파일은 아래에 설명하겠지만 추후에 폴더를 생성하고 추가해주시면 됩니다.



SampleTest 작성하기

아래와 같이 테스트를 하기 위한 간단한 테스트샘플 클래스를 생성해보도록 합시다.

Annotation(@RunWith와 @Test) 주의해서 작성해주세요!

SampleTest.java

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

import static org.junit.Assert.assertTrue;

@RunWith(JUnit4.class)
public class SampleTest {

   @Test
   public void TestSample() {
       assertTrue(true);
   }

}
  • Annotation에서 @RunWith(JUnit4.class)를 명시해주셔야만 합니다!
  • 아주 간단한 테스트로 assertTrue()함수에서 내부의 결과가 true인지를 확인하는 코드입니다. JUnit을 어떻게 사용하는지에 대한 간략한 설명이기에 테스트 코드는 간략하게 작성하였습니다:)


Android Studio에서 JUnit 테스트 돌려보기

이제 작성한 코드를 돌려보도록 합시다. src/java폴더에서 우클릭을 하시면 다음과 같이 Run 'Tests in 'java''가 뜨는데 눌러주도록 합시다,


테스트 결과

위에 Test를 돌리면 아래처럼 테스트가 돌아가는것을 Android Studio에서 확인이 가능합니다.


Circle CI에서 테스트 하도록 circle.yml 수정하기

Circle CI에서도 테스트를 진행하도록 하기 위해서 다음과 같이 circle.yml에 추가를 하도록 합니다. 자동적으로 ./gradlew test를 진행하긴 하지만… 다음에 포스팅 할 Espresso와 함께 테스팅 하려면 수동으로 설정을 해줘야 하니 미리 해주었습니다:)

circle.yml

...
dependencies:
  override:
     - chmod +x gradlew

test:
  override:
    - ./gradlew test
...


참고자료

[Linux] 쉘 스크립트에서 멀티프로세스(혹은 스레드) 기능 사용하기

> 백그라운드로 명령어를 실행해서 병렬적으로 실행되는 멀티 프로세스 환경을 만들어보자.## 환경- Linux 기반 시스템- Bash shell(/bin/bash)## 멀티프로세스? 병렬처리? 멀티스레드? 백그라운드 프로세스?- 여기서 진행할 방식...… Continue reading