2013-10-23 2 views
0

예제 JUnit 테스트 케이스가 있습니다.하지만 정확히 어떻게 작동합니까? 에는 주 또는 모든 러너 클래스 기능이 포함되어 있지 않습니다.. 누구든지 공유 할 수 있습니다 JUnit 테스트 케이스 주 기능없이 실행?JUnit 테스트 케이스에서 'main'함수가 호출 된 곳은 어디입니까

코드는 다음과 같습니다

import static org.junit.Assert.assertEquals; 

import org.junit.After; 
import org.junit.AfterClass; 
import org.junit.Before; 
import org.junit.BeforeClass; 
import org.junit.Ignore; 
import org.junit.Test; 

public class testJUnit { 

@BeforeClass 
public static void setUpBeforeClass() throws Exception { 
    System.out.println("Before Class"); 
} 

@AfterClass 
public static void tearDownAfterClass() throws Exception { 
    System.out.println("Tear Down After Class"); 
} 

@Before 
public void setUp() throws Exception { 
    System.out.println("Setup"); 
} 

@After 
public void tearDown() throws Exception { 
    System.out.println("Tear Down"); 
} 

@Test 
public void test() { 
    int a = 1; 
    assertEquals("Testing...", 1, a); 
} 

@Ignore 
@Test 
public void test1() { 
    int a = 156; 
    assertEquals("Testing...", 156, a); 
} 

} 

답변

2

이클립스에서 JUnit 테스트를 실행, 이클립스는 자신의 메인 클래스의있는 다른 JVM (RemoteTestRunner 당신이 관심이 있다면)를 실행합니다 .. @Before, @Test & @After의 순서로 발생합니다. 이것은 JUnitCore와 실질적으로 동일한 작업이지만, Eclipse에 특정한 변경 사항을 가지고 있습니다. 결과를 Eclipse로 다시 전달해야합니다. 이클립스에서 실행할 때

자세한 내용은 How does Eclipse actually run Junit tests?

+0

@Matthew :) – Amrit

2

당신은 실행 JUnit 테스트, 당신은 사실 org.junit.runner.JUnitCore을 실행하고 인수로 정규화 된 클래스 이름을 제공하는 경우.

이 논리를 처리하는 Eclipse 또는 Netbeans와 같은 IDE를 사용하고있을 가능성이 큽니다. 이 주제에 대한 내용은 @Matthew Farwell answer을 참조하십시오.

출처 : jUnit FAQ (2006)

+0

사실에 대한 내 대답을 참조하십시오, 그것은 JUnitCore를 호출하지 않습니다. 당신이 인용 한 FAQ는 2006 년입니다. –

+0

편집 내 대답 –

0

클래스는 main 메소드를 필요로하지 않습니다. jUnit은 실행을위한 주요 메소드를 포함하고 있으며, 어떤 시점에서 jUnit은 테스트 클래스의 인스턴스를 생성한다.

0

프레임 워크 자체에서 처리됩니다. 실행은

관련 문제