내 previous question과는 대조적으로 필자는 요구 사항을 제시하려고합니다. 자동화 된 테스트, 바람직하게는 C#을 사용, 비주얼 스튜디오에 기록을 작성하는기능/통합 테스트 및 데이터베이스 롤백을 자동화하는 방법
- 능력 : 나는 다음에 딱 맞는 몇 가지 프레임 워크/방법론/"일"을 찾기 위해 노력하고있다.
- 테스트는 사용자가하는 것처럼 웹 브라우저를 구동하고 SUT와 상호 작용해야합니다.
- 테스트는 DB에서 테스트 시나리오를 설정할 수 있어야합니다.
- 테스트는 사용자 상호 작용이 예상되는 효과를 DB에 가지고 있다고 주장 할 수 있어야합니다.
- 테스트가 완료되면 DB에서 수행 한 모든 변경 사항을 롤백 할 수 있어야합니다.
내 첫 번째 시도는 셀레늄 (그리고 그 전에 Watin)를 구동하기 위해 NUnit과 테스트를 사용했지만, 셀레늄 기반 브라우저 변경을 롤백하여 TransactionScope를 사용하는 동안 나는 약간의 문제 (위의 링크를 확인을) 직면 DB에서 했어.
"현실 세계"에서 이와 비슷한 작업을 한 사람이 있습니까? Google을 통해 몇 가지 참조 문헌을 찾았지만이를 구현하는 방법에 대한 구체적인 예를 찾을 수 없었습니다. 만약 내가 단위 테스트를하고 있다면 아무런 문제가 없을 것입니다. 이 경우 TransactionScope로 충분할 것입니다.
편집 : R. Harvey는 내 상황과 거의 동일한 this 질문을 지적했습니다.
그러나 그 질문은 단지 거의 동일합니다. 내 응용 프로그램은 서비스 세트의 일부이며, 모두 동일한 데이터베이스 테이블 세트에 액세스합니다. 필요한 테스트 데이터의 양은 drop/create-scripts의 효율적인 사용을 허용하지 않으므로 이에 대한 대안이 있습니까?
우리는 SQL Server 2005를 사용하고 있으며 데이터베이스 매직에는 능숙하지 않으므로 drop/create 이외의 SQL 스크립팅을 사용하는 방법이 있다면 옵션이 될 수 있습니다.
편집 2 : 답변 몇 가지 추가 머리를 긁적을 바탕으로이
, 우리는 개발자를위한 경량 데이터베이스에 갈 것이다는 통합 - 및 기능 테스트를 단위 - 수행 할 수 있습니다. 이를 통해 우리는 SQL 스크립트를 사용하여 테스트를 설정하고 해체 할 수 있습니다.
도움이 될 수도 있습니다 : http://stackoverflow.com/questions/768944/rollback-database-after-integration-selenium-tests –
예, 셀레늄 자체에 문제가 없습니다. 훌륭한 도구가 될 것 같습니다! 변경 사항을 롤백하는 데 문제가 있습니다. 셀레늄으로 구동되는 broser가 db로 이동합니다. – juarola
오, 이런, 어떻게 그리울 수 있겠 어. 이 글을 게시하기 전에 광범위한 검색을 시도했지만이 질문의 시나리오는 거의 복제본입니다. 자신의 상황과 차별화하기 위해 질문에 하나의 포인트를 추가하겠습니다 ... – juarola