2013-03-21 2 views
4

안녕하십니까, AspectJ와 Junit 테스트를 통합하는 데 문제가 있습니다.테스트 스위트에서 각 Junit 테스트를 위해 Aspectj에서 포인트 컷 만들기

테스트 스위트에서 각 테스트마다 다른 로그를 얻어야합니다. 따라서 새로운 테스트 케이스가 실행되는 시점과 완료 시점을 내 측면에서 알아야합니다. 어떻게 포인트 컷을 정의 할 수 있습니까?

다음 pointcut이 작동하지 않습니다. 한 번 입력하면됩니다.

pointcut testIsAboutToBegin() 
: execution (* *.test(..)); 
+0

왜 측면을 사용 setUp() 메서드를 사용합니까? – Markus

+0

애스펙트가있는 각 테스트 케이스의 메소드 호출을 추적 중이므로 새 추적을 시작할시기를 알아야합니다. –

+0

그래,하지만 tearDown() 메소드에서 새 추적을 시작하거나 (JUnit4에서 @After로 주석을 달아서) 트리거 할 수도있다. – Markus

답변

0

둘러보기 사용은 어떻습니까?

pointcut aroundTest(): 
    execution(public void test*(..)); 

    void around() throws Exception: aroundTest() { 
    LOG.info("start"); 
    proceed(); 
    LOG.info("stop"); 
    } 
0

안녕하세요 당신이 (전)와() 후이 목적을 위해 사용하는 경우,이 시도 : 당신이 JUnit4 @Before 또는 JUnit3의 펜던트로 사용할 수 있다면

before() : testIsAboutToBegin() { 
    System.out.println("starting test ... "); 
} 

after() : testIsAboutToBegin() { 
    System.out.println("ending test ... "); 
} 


//for GetJUnit 4.x 
pointcut testJUnit4xIsAboutToBegin() : execution(@Test * *(..)) 

pointcut testIsAboutToBegin() : execution (* *.test*(..)); 
관련 문제