웹 개발 시 단일 페이지의 기능을 테스트하는 것은 너무 번거로운 일입니다. 홈페이지에서 사용자 이름과 비밀번호를 입력한 후 몇 가지 작업을 거쳐야만 테스트하려는 페이지로 이동할 수 있습니다. (사실 어떤 개발을 하든 단일 기능을 테스트하는 것은 매우 번거로운 작업입니다.) 저는 보통 신중한 태도로 몇 문단을 작성하고 한 번 테스트하는 것을 좋아합니다. 매번 테스트하기 위해 전체 프로젝트를 시작하는 것은 분명히 매우 비경제적입니다.
저는 일반적으로 솔루션에서 테스트를 위한 새 구성을 추가하고 "Test"와 같은 컴파일 지시문을 추가한 다음 코드의 이 지시문 아래에 몇 가지 테스트 조건과 테스트 메서드를 넣습니다. 개발팀에서 단위 테스트 같은 개념을 도입하지 않았을 때, 새로운 테스트 프로젝트를 추가해서 이런 일을 하고 싶지는 않습니다. 그리고 웹 아래에 단일 페이지가 있는 경우에는 어떻게 진행해야 할지 모르겠습니다. 따라서 과거에는 내가 직접 만든 컴파일 지침을 사용하는 것이 더 익숙합니다.
(저는 WEB이 아닌 것들을 작성할 때 테스트 메서드와 클래스 자체를 파일에 작성한 다음 컴파일 지침을 사용하여 구별하는 것을 좋아했습니다. 테스트하려면 "Test"를 직접 선택하면 됩니다. 개발 환경을 구성한 다음 TestDriven을 시작하면 전체 프로젝트를 시작하지 않고도 시스템에서 많은 노력을 절약할 수 있습니다.
C#으로 개발하는 경우 개발 환경에서 현재 컴파일 조건이 맞지 않으면 해당 코드가 회색으로 표시되어 들여쓰기가 가능해 전혀 눈에 띄지 않습니다.)
그러나 내 트릭은 VS2005에서는 더 이상 작동하지 않습니다. 이제 WEB 개발은 이전과 약간 다릅니다. 검색할 때 컴파일 지침을 추가할 위치를 찾을 수 없습니다. WEB 개발자가 아닌 경우에도 추가할 위치를 찾을 수 있습니다. 오랫동안 고생한 끝에 이제 Web.config에 몇 가지 설정을 넣었고 조건부 컴파일도 예외는 아니라는 것을 알았습니다.
예를 들어, 이제 "Test" 조건부 컴파일 지시문을 추가해야 합니다. Web.config 파일에서 <compilation> 섹션 아래에 다음 문을 추가하면 됩니다.
<컴파일러>
<컴파일러 언어="vb"
유형="Microsoft.VisualBasic.VBCodeProvider, 시스템, 버전=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
확장=".VB"
compileOptions="/define:Debug=True /define:Trace=True /define:Test=True "/>
<컴파일러 언어="c#"
type="Microsoft.CSharp.CSharpCodeProvider, 시스템, 버전=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
Extension=" .cs"
compilerOptions="/d:DEBUG;TRACE;Test"/>
</compilers>
각 언어별로 <compiler>를 추가하는 것은 매우 중요합니다. 물론 해당 언어가 프로젝트에서 사용되지 않는 경우에는 무시하거나 삭제할 수 있습니다. 일반적으로 C#과 VB를 더 많이 사용하는데 저는 이 두 가지만 사용합니다.
Web.config에서 설정한 후에는 테스트해야 하는 페이지마다 컴파일 지침을 정의할 필요가 없습니다. 그러나 이전에는 여전히 구성을 직접 선택하는 것만으로는 충분하지 않습니다. IDE 툴바 이제 너무 많은 것을 작성해야 하는데 주로 전환이 불편합니다. 예를 들어 "테스트" 조건에서 시작하지 않으려면 Web.config로 이동하여 위 단락을 주석 처리해야 합니다.
MSDN에 따르면 .Net 2.0에서는 <compiler> 요소가 더 이상 사용되지 않습니다. 내 접근 방식은 올바른 방법이 아닌 것 같습니다.