2009-11-17 3 views
4

MSTest에서 XUnit으로 테스트를 옮길 생각입니다.MSTest에서 XUnit으로 마이그레이션

MSTest를 사용하여 XUnit으로 마이그레이션하는 응용 프로그램이 있습니까?

또한 그렇지 않은 경우 어떻게해야합니까?

감사합니다. JD.

+0

몇 개입니까? 500 개 파일의 5000 개 테스트에 대한 조언이 100 미만인 경우와 다를 수 있으므로 많은 도움이됩니다. –

+0

현재 500 개 테스트 중입니다. –

+0

시카고가 아니라면, 이사해야하는 이유는 무엇입니까? –

답변

3

Compare MSTest and xUnit 내가 최근에 꽤 많은 테스트를 옮겨보십시오. 얼마나 많은 테스트 유형을 변환하는지에 달려 있으며, 세부 사항을 알려주지 않으면 죽게됩니다. 일반적으로 MSTest의 평균적인 상점은 대규모 테스트 감염이 아니므로 MSTest의 각 구석에 파묻혀 있지 않을 것이라고 생각하는 것이 안전하다고 생각합니다.

모든 Assert.* 방법과 기본 테스트 속성은 찾기 쉽고 바꿉니다. 더 희귀 한 것들은 일반적으로 각 사례를 개별적으로 평가하는쪽으로 기울이고 있습니다. 이미 xUnit.net 전문가가 아니라면 많은 것을 배워야하며 이것이 도움이 될 것입니다.

또한 Assert.Fail의 사용은 간단한 변형이 아닙니다. 다른 하나는 TestClassInitialize를 IUseFixture로 변환하는 것입니다. 간단하지만 자동화는 어렵습니다.

사람들이 테스트 참조를 사용하는 경우 MSTest 어셈블리에 대한 참조를 제거 할 수 없으며 빌드 서버에 VS가 있어야합니다. 그러면 섀도우에서 임의로 계속 실패합니다 taks, 나의 질문을보십시오).

나를 위해 가장 큰 수작업은 맨 위의 영역에있는 20 개의 상용구를 통해 삭제하기 전에 실제로 사용자 지정 속성을 실제로 사용했는지 확인하는 것입니다.

CodeRush 템플릿이 많지 않았 더라면 중요한 것은 ExpectedExceptionAssert.Throws으로 변환하는 것이 었습니다. 이 일에 CodeRush 또는 ReSharper가 없다면 고용주에게 돈을 훔칠 것입니다.

+0

약 200 개의 파일에 대해 약 500 개의 테스트가 있습니다. 나는 전에 XUnit을 사용하지 않았다. XUnit이 NUnit 개발자들에 의해 만들어 졌다는 사실과 좋은 리뷰를 보았다. 나는 그것이 갈 길이 될 것이라고 생각했다. 필자는 테스트의 일부만 작성 했으므로 다른 모든 테스트의 세부 사항을 모두 갖고 있지 않습니다. –

+2

@JD : xUnit.net은 제 경험으로는 그만한 가치가 있습니다. 더 나은, 더 짧고 깨끗한 테스트를 작성할 수 있습니다. Osherove의 책과 xUnit Test Patterns를 읽으면 다른 프레임 워크보다 더 많은 것을 알게 될 것입니다. 나는 팀과의 나의 상호 작용에 대해서만 좋은 경험을했다. (현명하고시기 적절한 요청에 대한 응답의 측면에서). 500 개의 테스트가 내가 움직이는 영역에 있습니다. 주자 등은 무엇을 계획하고 있습니까? @ 기타 : 다른 사람이 포팅 경험/함정을 가지고있어? –

+0

@ 루벤. 감사. 아이디어는 CruiseControl에 테스트를 통합하는 것입니다 (msTest는 VS를 설치해야하며 우리는 그렇게하지 않으려했습니다). 우리는 개발 기계에 resharper 있습니다. 앞으로 몇 주 동안 xUnit을 확실히 볼 것입니다. 좋은 튜토리얼/vids 등을 추천 할 수 있습니까? 다시 한 번 감사드립니다. –

1

+1

@JD - Chaliy의 링크가 분명히 보여 주듯이 MSTest에서 NUnit 또는 MbUnit으로 이동하는 것이 더 간단 할 것입니다. 주요 목표가 MSTest에서 마이그레이션하는 것이면 더 나은 선택 일 수 있습니다. xUnit.net 철학에 동의한다면 결코 신경 쓸 필요가 없습니다. :) – TrueWill

+0

@TrueWill : "MSTest에 무엇이 문제가 있습니까?"라고 말하지는 않지만, NUnit 또는 MbUnit을 옆으로 움직이는 것으로 보입니다. MSTest는 거의 끝내주었습니다. NUnit에 대한 1 대 1 매핑을 사용하면 MbUnit 속성을 많이 제외하고는 얻을 수 없습니다 ('이득'이라고 생각하면). –

+0

고마워요, 제가 언급 한 것처럼 xUnit을 사용하지 않았고 500 개의 테스트를 마이그레이션하는 것이 너무 많은 작업 일 수 있습니다. 이제 NUnit으로 옮기고 새로운 프로젝트에 대해 xUnit philosphy를 살펴 보겠습니다. –

관련 문제