2011-06-12 3 views
2

junit 테스트의 속도를 높이고 싶습니다. forkMode="once"을 사용하는 것이 좋습니다.junit : forkMode = "once"를 사용할 때 가양 성을 피하는 방법은 무엇입니까?

false negative (정적 결합을 나타 내기 때문에 좋은 것)와 같은 한 프로세스 내의 모든 테스트에 대해 jyitseems to use a shared classloader이 있기 때문에 같은 이유로 잘못된 검색 결과가있을 수 있습니다.

  1. 는 각 테스트 케이스위한 새로운 클래스 로더를 시행 에의 JUnit의 클래스 로더의 동작을 변경하기 위해 어떻게 든 가능 :

    나는 두 가지 질문이에 대한있어? 거짓 긍정과 부정문을 피하기 위해 두 가지 방법 모두에서 junit을 실행할 수있는 것이 이상적이라고 생각합니다.

  2. 그것이

답변

1

는 지금까지 내가 지원되지 않는 원하는 것을 알고 있지만, 어떤 경우에 (개미를 사용하여) 오 탐지 확률을 감소 쉽게 RANDOMIZE 테스트하기 위해 할 수 있으며, 나는 당신이 당신의 접근 방식을 재고해야한다고 생각한다. 코드를 더 테스트 가능하도록 만들어서 새로운 JVM/Classloader에 의존하지 않아야한다.

하지만 할 수 없거나하지 않는 경우 - 최선의 행동 방침이 포크하는 것입니다.

+1

맞습니다. 제 코드가 새로운 jvm/classloader에 묶여서는 안됩니다. 이것이 바로 제가 아카이브하려고하는 것입니다. 그러나 가양 성 때문에 테스트가 묶여 있다는 것을 깨닫지 못할 수도 있습니다. 문제가되는 테스트 (또는 고객 불만)가 발생할 때까지 – MRalwasser

+1

테스트를 시작해야합니다. 귀하의 검사가 정확합니다. – RonK

+0

론, 동의하지 않습니다. 그것은 당신이 작성한 모든 테스트 클래스에 대한 반복적 인 코드입니다 (우리는 재 작성하지 않을 수백 가지의 레거시 테스트를 가지고 있습니다). 이것은 프레임 워크가 당신을 위해 할 수 있거나해야 할 일입니다. – JimN

관련 문제