2012-07-26 2 views
2

TestNG, WebDriver 및 log4j를 사용하여 몇 가지 테스트를 작성했습니다. 결과가 true 또는 false 인 경우 assert nomatter의 결과를 기록하려고합니다. 예를 들어,이 코드를 쓸 때 :Assert의 실제 결과를 기록하는 방법

Assert.assertTrue(condition) 

나는 이것이 통과 또는 실패 인 경우 로그에보고 싶습니다. 지금은 결과가 FAIL 일 경우에만 로그를 볼 수 있습니다. 누구나이를 달성 할 수있는 방법에 대한 아이디어가 있습니까?

감사합니다.

+0

가 왜이 작업을 수행 할 수 있습니까? 일반적이지 않은 워크 플로입니다. 단위 테스트의 경우 테스트 된 값은 일반적으로 실패한 경우에만 흥미 롭습니다. – Tom

답변

0

사용자는 Assert-Class를 덮어 쓰고 로거를 트리거 할 수 있습니다.

+0

MyAssert.assert에 의해 결과를 기록한 다음 Assert.asserTrue를 호출하는 것이 조건일까요? – Tom

+0

네, 그 뜻입니다. MyAssert를 사용하면 로거가 아닌 경우 추가 로깅 정보를 제공 할 수도 있습니다. – rollstuhlfahrer

0

Assert에 성공적인 어설 션을 기록하도록 알릴 방법이 없습니다.

Assert.assertTrue(condition); 
logger.info(condition ? "PASS" : "FAIL"); 

또는 서브 클래스 Assert을 당신을 위해 로깅을 할 assertTrue 다시 구현 :이 작업을 수행 할 수 있습니다. 이 경우에는 로그 라인이 콜 지점 대신 Assert.assertTrue 내부에 있다고 주장 할 것이므로 어떻게 든 수정해야합니다.

+0

이것은 내가 지금 당장하는 방법이지만, 이것을 기록하기위한 여분의 코드를 작성하고 싶지는 않습니다. rollstuhlfahrer가 말한 것처럼 아마도 그것을 수행하는 가장 좋은 방법은 Assert 클래스를 덮어 쓰는 것입니다. 나는 내가 알지 못하는 다른 방법을 발견 할 수 있다고 생각했다. fase relpies에 대해 대단히 감사합니다. – vali83

+2

this가 작동하지 않을 것이라고 생각하지 마십시오. 실패하면 로그 라인이 호출되지 않습니다. – Tom

+0

@Tom 단위 테스트를 쓰지 않고 셀레늄 테스트를 쓰고 때로는 어떤 조건이 충족된다는 것을 증명할 필요가 있고 또한 로그에서이를 볼 수 있기를 원합니다. – vali83

관련 문제