2012-11-01 3 views
0

내가 이런 시험이 있습니다TestNG에서 롤백을 중지하는 방법?

@ContextConfiguration(locations = { "file:war/WEB-INF/application-context.xml" }) 
public class ServiceImplTest extends AbstractTestNGSpringContextTests 
{ 
    @Autowired 
    private Service service; 

    @Rollback(false) 
    @Test 
    public void testCreate() 
    { 
      ..... 
       //save an entity to table_A 
     service.save(a); 
    } 
} 

table_A가 정리됩니다; 이 청소 작업을 중지하는 방법?

답변

0

테스트 클래스를 트랜잭션으로 표시하면 스프링 테스트 클래스도 사용해야합니다.

@RunWith(SpringJUnit4ClassRunner.class), 
@ContextConfiguration(locations = { "file:war/WEB-INF/application-context.xml" }) 
@Transactional 
public class ServiceImplTest extends AbstractTestNGSpringContextTests 
{ 
    @Autowired 
    private Service service; 

    @Test 
    @Rollback(false) 
    public void testCreate() 
    { 
      ..... 
       //save an entity to table_A 
     service.save(a); 
    } 
} 

또한 txMgr 당신의 트랜잭션 관리자의 이름입니다 @TransactionConfiguration을 사용하여 시도 할 수 :

@RunWith(SpringJUnit4ClassRunner.class), 
@ContextConfiguration(locations = { "file:war/WEB-INF/application-context.xml" }) 
@TransactionConfiguration(transactionManager="txMgr", defaultRollback=false) 
public class ServiceImplTest extends AbstractTestNGSpringContextTests 
{ 
    .... 
} 

시험의 롤백 기능은 정보없이, 당신은 당신의 트랜잭션을 관리하는 방법에 따라 달라집니다 그 당신에게 확실한 대답을주기가 어렵습니다.

+0

각 테스트 후 테이블의 모든 이전 데이터 항목이 사라 지므로 테스트에 의해 삽입 된 항목 만 남기 때문에 처음에는 신경 쓰지 않지만 깨끗한 것 같습니다. –

관련 문제