2012-02-22 1 views
3

빌드 중에 AppHarbor에서 조건부 컴파일 기호를 설정할 수 있습니까? 어쩌면 간단하게 : AppHarbor빌드 중에 AppHarbor이 조건부 컴파일 기호를 설정할 수 있습니까?

나는 서버에서 실행할 수없는 몇 가지 테스트를 가지고있다. 테스트 데이터 파일에 의존한다.

AppHarbor이 조건부 컴파일 기호를 설정할 수있는 경우 해당 기호가있을 때 테스트에 [무시] 특성을 추가 할 수 있습니다.

또는 AppHarbor에서 실행할 때 특정 테스트를 무시하는 더 나은 방법이나 다른 방법이 있습니까?

또는 테스트 코드가 프로젝트에있는 테스트 데이터 파일을 올바르게 참조 할 수있는 방법이 있습니까?

감사합니다. 글렌

편집 : 데이터 파일을 테스트 프로젝트의 리소스로 포함시켜 테스트했습니다. 이상적은 아니지만 지금은 괜찮습니다. 그러나 컴파일 심볼을 설명한대로 설정할 수 있는지 알고 싶습니다.

답변

4

"AppHarbor"편집 기호 설정은 흥미로운 제안이지만 현재 AppHarbor에서는 지원되지 않습니다. feature request으로 추가 할 수 있습니다.

테스트를 실행할 때 Environment appSetting이 test으로 설정됩니다. 조건부로 특정 테스트를 건너 뛸 수 있습니다. 자신 만의 구성을 원할 경우 Web.Test.Config 파일을 사용하여 테스트를 수행할지 여부를 결정할 수있는 필요한 변환을 적용 할 수 있습니다.

두 방법 모두 this article에 설명되어 있습니다.

일반적으로 내 권장 사항은 테스트를 실행할 때 존재하지 않는 파일에 의존하지 않는 것입니다. 그러면 모든 CI 환경에서 응용 프로그램이 작동합니다. 설명하는대로 포함 된 리소스로 파일을 포함하는 것은 옵션이지만 Build Action 속성을 Content으로 설정하여 프로젝트에 포함 할 수 있어야하며 출력 디렉터리에서 사용할 수 있습니다.

+1

if ("Test"== ConfigurationManager.AppSettings [ "Environment"]) { Assert.Ignore ("Ignored on AppHarbor"); } – harriyott

0

@runesorensen : 에서 테스트를 무시하려는 각 테스트 프로젝트에는 app.config 파일이 있어야합니다. 그렇지 않으면 "환경"응용 프로그램 설정이 null이됩니다.