2017-11-21 17 views
0

Xunit 테스트 케이스를 실행할 때 디버깅을 단계별로 실행할 수있는 애플리케이션이 있습니다. 나는 그것이 흘러가는 모든 라인을 기록하기를 원한다. 하나의 긴 페이지 (예 : 소스 코드의 로그 파일)에서 전체 플로우를 읽을 수있다.XUnit 테스트가 실행될 때마다 모든 라인을 출력 할 수 있습니까?

실행을 로그 파일로 출력하려면 어떻게해야합니까?

호기심에, 이것은 재 작성에 필요한 로직을 파악하기위한 기존 코드의 흐름을 볼 수 있습니다. 물론 요구 사항, 유스 케이스 등은 유지되지 않았으므로 현재의 생산 코드 인 유일한 진원지에서 가져 오는 것이 내 전략입니다.

class1.method1(2).print(" test " + a); 
class1.method1(2).method2(a * 2); 
class1.method2(4).if (b > 10) 
class1.method2(4).else 
class1.method2(4).print("b is " + b); 

는이 로그를 얻을 수 있습니다 :

method1(var a) 
{ 
    print(" test " + a); 
    method2(a * 2); 
} 

method2(var b) 
{ 
    if (b > 10) 
    { 
     print("b too big"); 
    } 
    else 
    { 
     print("b is " + b); 
    } 
} 

테스트 케이스 같은 method1(2); 때문에 출력이 될 뭔가를 실행? 그렇다면 누구나 어떻게 할 수 있는지 알고 있습니까?

미리 감사드립니다.

답변

0

쉬운 작업이 아니므로 실행중인 프로세스에 코드를 통해 사용자 지정 디버거를 연결하거나 디버거가 연결된 상태에서 새 프로세스를 시작해야합니다.

는 각 문 다음에 중단 있도록, 잠재적으로지도하고 .PDB 파일과 소스 코드를 사용할 필요. 당신의 현재 스택 위치 및 출력이에서 현재의 라인을 읽기 (각 라인을 통해

단계.

일반적으로 매우 어려운 작업입니다.

+0

나는 두려웠다! – Chip

0

일반적으로 내 Runtime Flow 도구를 사용하면 매개 변수가있는 실행 된 모든 메서드를 기록 할 수 있습니다. XUnit 테스트에서는 시도하지 않았지만 사용자 지정 실행을 구성 할 수 있습니다 모니터링을위한 설정

+0

우리는 ANTS를 사용하여 이것도 마찬가지다. 어쩌면 GUI 매크로를 복사하여 코드 및 변수를 붙여넣고 파일에 추가하는 방법을 생각해보십시오. – Chip