필자는 ASP.NET 응용 프로그램에 대한 빠르고 간단한 유닛 테스트 프레임 워크를 사용합니다. 예상되는 결과와 실제 결과를 비교하고 테이블을 만드는 ASPX 페이지입니다. 필요에 따라 컴파일되며 VS.NET을 실행하지 않아도 신속하게 수많은 테스트를 만들고 실행할 수 있습니다. 당신이 상상할 수 있듯이스택 추적으로 실제 코드 줄을 검색 할 수 있습니까?
이PrintResult(
expected: "$A$1",
actual: RST.ExcelReference.FormatReferences("{{REF:1:0:1:0}}", false, 0, 0),
arguments: "RST.ExcelReference.FormatReferences(\"{{REF:1:0:1:0}}\", false, 0, 0)");
(. 명명 된 인수가 명확성을 위해 추가)
에서, 실제 호출하고 호출의 표시를 동기화하는 것은 고통이다 : 여기
는 예를 들어 전화입니다 .Environment.StackTrace
의 인수 값을 검사 할 수 없다는 것을 알고 있습니다. 메서드 정의와 행 번호 만 있습니다. 하지만 제 경우에는 인수 값을 필요로하지 않습니다. 필자는 일반적으로 리터럴을 인수로 사용하여이 메서드를 호출하므로 Stack Trace의 PrintResult()에 대한 진입 점의 소스 코드 줄이 필요합니다.
처리되지 않은 예외가있을 때 나타나는 것처럼 ASP.NET에 소스 코드가 사용 가능한 것 같습니다. 어떻게 접근 할 수 있습니까?
이것은 정확히 지금까지 내가 ASPX의 소스 코드 (Request.PhysicalPath)를 문자열 목록으로 읽고 프레임의'GetFileLineNumber() - 1'에 대한 행을 인쇄하는 것입니다. 소스 코드를 직접 읽는 것이 이상하게 보였으므로보다 우아한 방법이있을 수 있다고 생각했습니다. (실제로'Environment.StackTrace' 대신'new System.Diagnostics.StackTrace (true)'를 사용하고 있으므로 문자열을 파싱 할 필요가 없습니다.) – richardtallent