2010-01-26 1 views
1

C# 클래스 라이브러리 및 테스트 집합. 새로운 테스트 세트를 추가하기 전까지는 모든 것이 잘 진행되고있었습니다. 테스트는 내 컴퓨터에서 제대로 실행되지만 TFS 빌드 서버에서는 실패합니다. 빌드 로그의 스택 추적은 의미가 없습니다. 하나의 클래스의 생성자가 메소드 중 하나에 매핑 된 것처럼 보입니다. 내 수업이 같은 약간 보이는 경우유닛 테스트를위한 스택 트레이스가 실제 소스와 어떻게 일치하지 않을 수 있습니까?

:

시험 방법 :

1. [TestMethod()] 
2. public void UpdateTest() 
3. { 
4.  ClassToBeTested Target = new ClassToBeTested(); 
5.  ClassToBeTested.MethodToTest(); 
6. } 

그런 다음 내 스택 추적이 나타냅니다

1. public class ClassToBeTested 
2. { 
3. 
4.  /// <summary> 
5.  /// Default constructor. 
6.  /// </summary> 
7.  public ClassToBeTested() 
8.  { 
9. 
10.  } 
11. 
12.  /// <summary> 
13.  /// Default constructor. 
14.  /// </summary> 
15.  public MethodToTest() 
16.  { 
17.   /* do stuff that throws exception */ 
18.  } 
19. 
20. } 

을 그리고 내 단위 테스트 클래스를 나는이 있습니다 unittestclass.UpdateTest 예외/무엇이든 던졌습니다.
ClassToBeTested.MethodToTest() : Line 17
unittestclass.UpdateTest() : Line 4

어떻게 가능합니까?

+0

확인을에서 테스트를 게시하려고 -이/문제는 (에만 발생 최적화 버그의 일종으로 나타납니다 릴리스 빌드에서는 내 테스트가 빌드 서버에서 디버그로 실행되지 않습니다. +1). MS에서 참조를 제공 할 수있는 모든 사람에게 대답을 수락했습니다. –

답변

1

예외를 throw하는 메서드 내부의 코드는 그 코드와 관련이있을 수 있다고 생각합니다. 특히 뭔가의 경우 정적 생성자가 있습니다 아마도이 되거 수

http://msmvps.com/blogs/jon_skeet/archive/2010/01/26/type-initialization-changes-in-net-4-0.aspx

하지만 더 도움

... 아마도 누락 된 코드 방법의 세부 사항 및/또는 예외 유형을.

이 또한 .. 디버그 시스템에 빌드 구성이 빌드 서버와 동일한 지 확인하거나 릴리스 구성을/

+0

+1은 John의 블로그와 재미있는 가능성을 읽도록 상기시켜주었습니다. 여기에서 일어나는 일이 아니더라도. –

관련 문제