2014-06-20 1 views
2

최근에 diff 도구 (BeyondCompare 3, 내 경우에는, 내가 같은 문제를 가진 동료가있는 경우)를 사용하여 문제가 발생했습니다. WinMerge)가 깜박이고 즉시 닫힙니다. 도구를 열어 둘 수있는 유일한 방법은 테스트를 실행하기 전에 도구를 열어 놓는 것입니다.ApprovalTests diff 도구가 열려 있지 않으면 DiffReporter가 diff 창을 표시하지 않습니다.

ApprovalTests 3.6을 사용하고 있습니다. 나는이 문제가 이전 버전에도 존재했다는 것을 알고있다. 방법은 확인 전화

은 매우 간단합니다 : 지금까지 BeyondCompare에 관한 한

[UseReporter(typeof(DiffReporter))] 
    protected void VerifyTables(IEnumerable<DataTable> tables, bool showSchema = false) 
    { 
     Approvals.VerifyAll(tables.Select(t => GetXmlForApproval(t, showSchema).ToString()), ""); 
    } 

- 나는 Visual Studio에서 TFS 비교와이 문제를 했어, 그리고 그것을 TFS 때문이에 설정되고 있었다 BComp.exe 대신 BCompare.exe를 호출하십시오. 그래서 BCompare.exe 대신 BComp.exe를 호출하는 BeyondCompareReporter의 사용자 지정 구현을 시도했지만이 경우에는 차이가 없습니다.

답변

4

단위 테스트의 일부 주자는 단위 테스트가 끝난 후 실행 된 모든 프로세스를 강제 종료합니다. 이전에 BeyondCompare가 작동하는 이유는 프로세스가 유닛 테스트를 통해 시작되지 않았기 때문입니다.

나는 2 가지 주요한 방식으로이 것을 보았습니다.
1) 테스트는 Resharper 테스트 러너의 일부 버전을 통해 실행됩니다.
이 문제를 해결하는 방법은 resharper의 최신 버전으로 이동하는 것 같습니다. 또는 당신이 주변 MSTEST
에 대한 테스트 설정 파일의 일부 버전을 통해으로 VisualStudio 테스트 러너를 통해 작업을 .runsettings

2) 테스트 실행 테스트를 실행할 수있는 것은 있지만, 단지 테스트 설정 파일을 삭제하는 것 같다 당신은 당신이 단순히 두 개의 파일을 삭제하여 문제를 해결할 수 있습니다 (비주얼 스튜디오 2008) .vsmdi 및 .testrunconfig 파일이있는 경우 http://msdn.microsoft.com/en-us/library/jj635153.aspx

+0

쿨, KeepExecutorAliveAfterLegacyRun은 내가 필요한 것입니다! 문제는 runsettings 파일, testsettings 파일 또는 설정 없음을 사용하여 VS2013 테스트 러너 또는 ReSharper 's를 사용하여 발생했습니다. 그러나 runsettings 파일에서 그 값을 설정하면 수정됩니다! –

0

: 나는 실제 라인에서

KeepExecutorAliveAfterLegacyRun 

더 믿습니다.