2014-02-10 1 views
1

어떻게 분리합니까?Visual Studio를 사용하여 선택적으로 테스트 사례를 실행할 수 있습니까?

계약으로 구축 된 모듈이 있다고 가정 해보십시오 (즉, 인터페이스를 구현). 이는 단위 테스트 목적 및 확장 성을 위해 수행됩니다.

데이터 액세스 모듈의 필기 단위 테스트 케이스에 숙련 된 팀원이 있다고 (A)라고 가정 해보십시오. 따라서 그의 코드는 적절한 인터페이스와 어셈블리를로드 한 후에이 인터페이스를 인스턴스화합니다. 그리고 그 사람은 인터페이스를 핵심 테스트 대상으로 사용하여 테스트 케이스를 작성합니다. (적절한 단어 사용법인지는 확실하지 않음).

모듈의 실제 개발자이고 코드 작성에 조금 초보자이며 (.net 프레임 워크에 대한 많은 지식이없는) 사람 (B). 심지어 그는 몇 가지 테스트 케이스를 쓴다. S/그는 팀 리더가 제시 한 스펙 가이드 라인에 따라 모듈에 대한 코드를 작성합니다 (위에서 언급 한 바와 같습니다).

그래서 A의 테스트 사례는 시스템 목표에 더 부합 할 것입니다. 그러나 B의 테스트 케이스는 .net 프레임 워크를 탐구하는 것과 비슷합니다. 예 : 그것은 File.Replace를 탐색하는 것과 같을 수 있습니다. 문서를 잘 읽지 않는다면 파일 시스템의 "어디든지"두 파일이 "대체"될 수 있다고 생각할 것입니다. 그러나 문서는 그렇지 않다고 말합니다. 하지만 B는 그것에 대해 모른다. 그는 그것에 대해 배우기 위해 테스트 케이스를 쓴다.

그래서 전체적으로 일반화하면 두 개의 단위 테스트 케이스 그룹이 있습니다. 노력과 성과를 추적하고 B에 대한 교육 계획을 수립 할 수 있으려면 두 가지 테스트 케이스가 필요합니다. 그러나 전체적으로 데이터 액세스 모듈을 테스트하는 동안 A의 테스트 사례 만 실행하면됩니다.

Visual Studio에서이 작업을 수행 할 수 있습니까? 선택적으로 테스트 케이스를 실행합니다. A의 모든 테스트 케이스를 어떻게 빨리 실행할 수 있습니까?

답변

3

사용중인 테스트 라이브러리에 따라 다릅니다. MsTest를 사용하는 경우 TestCategories을 사용할 수 있습니다.

[TestCategory("Nightly"), TestCategory("Weekly"), TestCategory("ShoppingCart"), TestMethod()] 
public Void DebitTest() 
{ 
} 

마찬가지로 NUnit을 사용하는 경우 Categories을 사용할 수 있습니다. 당신이 정말로 비주얼 스튜디오를 실행해야하는 경우 내가 대신 using playlists를 추천 할 것입니다

namespace NUnit.Tests 
{ 
    using System; 
    using NUnit.Framework; 

    [TestFixture] 
    [Category("LongRunning")] 
    public class LongRunningTests 
    { 
    // ... 
    } 
} 

UPDATE

그러나 나는이의 이익에 의문을 제기한다. 수작업으로 테스트 케이스를 확인하는 것은 합격이나 실수가있을 수 있으므로 보상 범위가 크지 않습니다. 빌드 프로세스의 일부로이를 자동화해야합니다. 저는 종종 비주얼 스튜디오가 (예를 들어, 이렇게) 권장하기 힘든 일을하기가 어렵다고 생각합니다.

나는 사람 A와 사람 B가 함께 프로그램을 쌍으로 만들 것을 제안합니다. 경험이 부족한 사람의 기술은 사람 A가 사람 B에게 지식을 이전하고 품질이 높아져서 더 빨리 움직일 수 있으므로 더 빨리 향상됩니다.

+0

명령 프롬프트에서 실행해야합니까? 그렇게하는 데 ide 방법이 없습니까? VS에서 내장 된 Ms 테스트 인프라를 사용할 때 말입니까? – deostroll

+0

@deostroll이 내 대답을 업데이트했습니다. –

0

이 목적을위한 테스트 분리는 좋지 않은 아이디어라고 생각합니다. 숙련 된 개발자가 아닌 의 사기를 저해 할 수 있습니다. 또한 여러 사람이 동일한 테스트를 수정할 때 발생하는 문제를 만듭니다. 이 문제에 대해 정말로 걱정한다면, 경험이 부족한 개발자가 작성한 테스트가 코드베이스의 일부로 간주 될만큼 충분한 품질을 지니고 있는지 확인하십시오. 쌍 프로그래밍 및 코드 검토는이 작업에 매우 유용합니다. 이것은 또한 개발자가 자신을 향상시키는 데 사용할 수있는 좋은 피드백을 제공합니다.

이것은 일반적으로 how high of quality your tests should be의 질문입니다. 코드베이스의 한 부분을 낮은 품질로 유지하는 것은 좋은 생각이 아닙니다. 당신이 그것을 분명하게 표시하려해도.

+0

경험이 적은 dev의 테스트 코드는 코드베이스 그 자체가 아닙니다. 또한이 코드를 작성한 이유에 대한 문서 형식의 문서입니다. 테스트 하위는 검토되지 않지만 모듈에 작성된 내용은 검토됩니다. – deostroll

관련 문제