2009-05-13 2 views
0

개발 서버에서 실행되는 약 20 개의 테스트 세트가 있습니다. Alpha 서버로 전환하고 동일한 20 가지 테스트를 수행하는 쉬운 방법을 원합니다. 하지만 매번 모든 서버에서 실행하고 싶지는 않습니다. 일반적으로 나는 Dev에 대한 테스트를 모두 녹색이 될 때까지 돌리고 Alpha로 코드를 돌리고 테스트를 실행합니다. Dev에서 많은 반복, Alpha에서 몇 차례 반복 한 다음 이론적으로 하나의 스택에서 모든 서버를 실행하여 Release합니다.Nunit의 구성을 사용하여 테스트 동작을 변경하는 것이 합리적이고 가능한가요?

이 방법은 이제 TestFixture에서 변수를 사용하여 수행됩니다. 괜찮습니다.하지만 환경을 바꿀 때마다 다시 빌드해야합니다. 하지만 Configurations 메뉴를 보았는데 사용하기에 좋을 것 같았습니다. 각 환경에 대한 구성을 추가하고 해당 구성을 가리키며 테스트를 실행하면 올바른 서버에서 실행됩니다. 거기에 냄새 나는 하드 코딩이 있습니다 : 환경의 이름이 대상 테스트 환경의 이름과 일치해야한다고 가정하십시오. 나는 그걸로 살 수있다.

첫 번째 질문 : 이것을 수행하는 더 좋은 방법이 있습니까? 두 번째 질문 : 이것도 가능합니까? TestFixture 레벨에서 해당 구성을 읽을 수있는 방법을 찾을 수 없습니다.

+0

테스트 픽스처의 변수를 수정하여 변경 한 사항은 무엇입니까? 테스트가 환경에 대해 왜 신경을 씁니까? – Gishu

+0

@ Gishu : 제가 일하고있는 가게에는 엄청난 양의 배포 문제가 있습니다. 개선 할 수있는 부분이 있지만 내 도메인 밖에 있습니다. 푸드 체인을 통해 다음 서버로 배포하고 새 코드가 작동하지 않는 경우가 종종 있습니다. 문제 추적은 시간이 오래 걸릴 수 있으므로 이러한 단위 테스트는 중간/데이터 계층을 새 서버의 문제로 제거하는 방법입니다. 확실히 갈 수있는 최선의 방법은 아니지만 가능한 한 최선을 다합니다. – jcollum

답변

1

표준 .NET 구성 파일 만 사용하십시오. Appsettings 또는 구성 요소. 모든 dll (테스트 포함)에서 읽을 수 있습니다. 예 : mytest.dll.config for mytest.dll, 우리는 "구성 요소"또는 "통합"테스트를 위해 SQL 서버와 같은 외부 종속성이있는 테스트를 수행합니다. 테스트는 서버가 어디에 있는지를 알아야합니다.

단위 테스트에 대한 필수 사항 : 수락 또는 통합 테스트에 대해 알아야합니다. 귀중한,하지만 유지하고 천천히 비싼. 당신은 그 중 극소수 만 가지고 있어야하고 더 많은 유닛 테스트 (서버가 어디에 있든 상관 없다)가 있어야한다.

+0

필자는 TestFixture에서 문자열 값을 변경하는 것과 같은 양이라고 생각합니다. 두 번째 요점 다시 말하자면,이 단위 테스트는이 배포 버그에 얼마나 많은 시간을 낭비 하는지를 알기 전까지는 이러한 문제를 처리하는 방식입니다. – jcollum

+0

내 가게 (대부분, 제 생각에는) 다른 빌드를 다시 컴파일하는 것을 고려할 것입니다. 테스트는 빌드를 검증하기 위해 존재합니다. 똑같은 코드를 정확히 똑같은 코드에서 실행하고 싶습니다. 쉽게 변경하는 것이 문제라면 일부 MS 빌드 커뮤니티 작업은 구성 파일을 업데이트 할 수 있습니다 (물론 NUnit을 실행합니다). – Precipitous

관련 문제