junit
테스트 실행 순서
수색…
통사론
- @FixMethodOrder // 기본 메서드 정렬 도구를 사용하여 테스트를 실행합니다.
- @FixMethodOrder (MethodSorters) // MethodSorters 열거 형과 연결된 MethodSorter를 사용하여 테스트를 실행합니다.
기본 주문
주석 - @FixMethodOrder(MethodSorters.DEFAULT)
사용하십시오. 이것은 결정 론적이고 예측 가능한 순서로 클래스 내의 모든 테스트를 실행합니다. 구현은 메서드 이름을 해시하고 비교합니다. 동점의 대본에서는, 그것은 사전 편집 순서에 의하여 분류한다.
JUnit Github - MethodSorter.java에서 가져온 코드 세그먼트
public int compare(Method m1, Method m2) {
int i1 = m1.getName().hashCode();
int i2 = m2.getName().hashCode();
if(i1 != i2) {
return i1 < i2 ? -1 : 1;
}
return NAME_ASCENDING.compare(m1,m2);
}
예
@FixMethodOrder(MethodSorters.DEFAULT)
public class OrderedTest {
@Test
public void testA() {}
@Test
public void testB() {}
@Test
public void testC() {}
}
testA
, testB
및 testC
해시가 각각 3, 2 및 1이라고 가정합니다. 그런 다음 실행 순서는 다음과 같습니다.
- testC
- 시험 B
- 종피
모든 테스트에 대해 해시가 동일하다고 가정합니다. 모든 해시가 같기 때문에 실행 순서는 사전 식 순서를 기반으로합니다. 실행 순서는 다음과 같습니다.
- 종피
- 시험 B
- testC
사전 순
주석 사용 @FixMethodOrder
방법 분류기와 MethodSorters.NAME_ASCENDING
. 그러면 결정적이며 예측 가능한 순서로 클래스 내의 모든 테스트가 실행됩니다. 구현은 메서드 이름을 비교하고 동점의 경우 메서드의 toString()
비교합니다.
JUnit Github - MethodSorter.java에서 가져온 코드 세그먼트
public int compare(Method m1, Method m2) {
final int comparison = m1.getName().compareTo(m2.getName());
if(comparison != 0) {
return comparison;
}
return m1.toString().compareTo(m2.toString());
}
예
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class OrderedTest {
@Test
public void testA() {}
@Test
public void testB() {}
@Test
public void testC() {}
}
실행 순서는 다음과 같습니다.
- 종피
- 시험 B
- testC
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow