문제

내가 실행 중인 일부 JUnit 테스트에 내용됩니다.모든 테스트는 위한 루프를 호출하는 각각의 방법을 10000 다.이 테스트 방법을 많이 생산하는 로그에 있습니다.이러한 로그가 자동으로 수집해 JUnit 으로 테스트를 출력합니다.이 상황이 발생하여 메모리 부족하기 때문에 문자열을 버퍼 JUnit 유지 출력이 너무 큽니다.I dont'필요한 이러한 중에 기록 테스트,그래서이 있는 경우를 말한 JUnit"지키지 않는 프로그램 출력"이것은 것에 충분하다.어떤 아이디어가?

도움이 되었습니까?

해결책

어떤 종류의 로깅을 사용하고 있습니까?는 몇 가지 방법이 있을 수 있습을 재정의 기본 로그 행동을 그냥 무시하는 모든 로그 메시지가 있습니까?

다른 팁

몇 가지 옵션:

  1. 변경 logging 도록 덤프하는 파일 대신에 표준 출력됩니다.
  2. 증가를 최대한 힙 크기 -Xmx <some number>M, 처럼, -Xmx 256M.

나는 것만이 증가할 수 있다.를 추가하려고-Xmx256m-Xmx256m VM.

이 솔루션을 재정의 로깅 속성입니다.지금 나는 장애인 로깅 및 모든 작동하는 것 같다(테스트가 아직도 실행).그것이 작동하는 경우 내가 구성하는 방법에 대한 기록하는 파일입니다.셔서 감사합니다 모두(과 축하를 Jeff&친구를 위해 이 사이트).

나는 그 대답은 받아들이는 이미지만,여기에 무엇인가에 제출했다면 그것을 입력 및 빠른 테스트:

는 경우"로그"라고 당신을 의미 시스템이다.니다.system.out.println()또는 시스템입니다.err.system.out.println()및 확인되는 경우에 당신의 테스트는 정말 필요 없이 로그를 다음을 리디렉션할 수 있습니다 stdout 및 stderr 프로그래밍 방식으로 보여줍니다.

// Save the original stdout and stderr
PrintStream psOut = System.out;
PrintStream psErr = System.err;
PrintStream psDevNull = null;
try
{
    // Send stdout and stderr to /dev/null
    psDevNull = new PrintStream(new ByteArrayOutputStream());
    System.setOut(psDevNull);
    System.setErr(psDevNull);
    // run tests in loop
    for (...)
    {
    }
}
finally
{
    // Restore stdout and stderr
    System.setOut(psOut);
    System.setErr(psErr);
    if (psDevNull != null)
    {
        psDevNull.close();
        psDevNull = null;
    }
}

이 방법은,당신의 테스트 출력이 비활성화됩니다,하지만 다른 출력을 JUnit 지 않는 것으로 사용한 경우 리디렉션에서 명령 라인에 다음과 같다:

ant test &> /dev/null

명령 라인을 리디렉션의 모든 원인 개미/JUnit 의 출력을 리디렉션할 뿐 아오고 있는 클래스에서 당신 테스트,그래서 아마 당신이 원하는 것이 아니다.프로그래밍 방식으로 리디렉션만 하면 됩 인쇄/쓰기 시스템입니다.고 시스템입니다.err 에서 귀하의 프로그램을 리디렉션됩니다,당신은 여전히 출력에서 개미와 JUnit.

의 경우 어떤 도움을 설정,outputtoformatters="no"로 해결하는 모든 나의 메모리 문제(에 개미 1.7.1 그것을 이렇게 하여 생성된 출력 테스트 전송되는 테스트를 포맷터).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top