2

Windows 7 Pro 전용 빌드 머신에 CruiseControl.NET (v 1.6.7981.1)을 설치했습니다. Gallio.Echo.exe를 사용하여 MBUnit 테스트를 빌드하고 실행하는 VS2012 프로젝트 설정이 있습니다. 내 문제는 CC.NET이 이러한 테스트를 실행할 때 일부 테스트에서는 실패하지만, 동일한 DLL을 포함하고있는 CC 작업에 지정된 것과 동일한 매개 변수를 사용하여 명령 줄에서 똑같은 프로그램을 실행할 때 테스트, 모든 단일 테스트가 통과합니다. 나는 무슨 일이 일어나는지 알아낼 수 없다. CruiseControl이 실행될 때 일부 테스트가 실패 할 수도 있지만 실행했을 때 실패하는 이유를 설명 할 수 있습니까? CruiseControl 서비스가 실행되는 계정과 동일한 계정으로 실행하려고 했으므로 사용 권한 문제로 생각하지 않습니다. 나는 그것을 다시 켜고 다시 시도했다 (기계).CruiseControl에서 테스트가 실패했지만 실행했을 때 성공했습니다.

CruiseControl은 관리자 권한으로 로그온 한 Windows 서비스로 실행 중입니다. VS 프로젝트는 .NET 4.0 데스크톱 응용 프로그램입니다. 이전에 .NET 3.5 용으로 빌드 된 기존 프로젝트를 .NET 4.0으로 업그레이드했습니다. 이 프로젝트는 Microsoft.Ink 어셈블리 (6.1.0.0)를 참조하며이 빌드 시스템의 GAC에 있음을 확인했습니다. 실제로 실패한 테스트는이 어셈블리를 사용하는 응용 프로그램의 일부를 테스트하는 것입니다. 이 레거시 프로젝트는 나중에 대체 할 계획이지만 현재는 함께 사용해야합니다.

함께 System.Runtime.InteropServices.COMException : 치명적인 오류 (HRESULT에서 예외 : 0x8000ffff는 (E_UNEXPECTED)) ErrorCode가 : 마이크로 소프트 -2147418113 다음

는 CruiseControl을에서 시험 보고서에서 오류입니다. 된 .vb시 Microsoft.Ink.InkPicture.set_InkEnabled (부울 값)에 (부울 수집) Ink.InkOverlayClass.set_Enabled : ....... 라인 1,201 여기

은 (VB.NET 인) 코드 fai LS

Dim inkPictureObject As New Microsoft.Ink.InkPicture() 
... 
inkPictureObject.InkEnabled = False 
inkPictureObject.Ink = New Ink() 
inkPictureObject.InkEnabled = True '<-- fails here 

나는 자원을 할당하고 있지 않다 이후가 도움이 발견되지 않은 어느 것도이 제외 오류 (COMException occurred: ErrorCode = -2147287036)이 (Only while running on VS 2010: COMException: Catastrophic Failure: Error Code: -2147418113)에 대한 정보를 찾을 수 없습니다 내가 아무런 문제 때이 없다 나는 VS2012에서 프로그램을 실행할 때 그 라인을 쳤다. 실제 키커는 CruiseControl 구성에 지정된 매개 변수와 동일한 매개 변수를 사용하여 명령 프롬프트 (CruiseControl 서비스가 실행되는 것과 동일한 사용자로 로그인 한 상태)에서 실행하면 테스트가 완벽하게 작동합니다 (이전에 언급했듯이).

Gallio.Echo.exe/RNF : 테스트 보고서/RT : XML에 인라인/V : 조용한 "C : testAssembly.dll \ 내 프로젝트를 \"

어떤 도움이 많이 주시면 감사하겠습니다 .

+0

ccnet 서비스가 Windows 서비스로 실행되고 있습니까? –

답변

1

명령 프롬프트에서 ccnet을 실행하여 테스트가 실패하거나 통과하는지 확인하십시오. 제 생각 엔 ccservice.exe을 실행하면됩니다.

ccnet이 Windows 서비스로 실행되는 경우 이것이 실패 할 수있는 이유를 이해할 수 있습니다. Windows 서비스는 새 창을 만들 수 없습니다.

이 Microsoft 설명서 http://msdn.microsoft.com/en-us/library/aa514604.aspxInkPicture이 그림을 표시하고 상호 작용할 창을 만드는 C# 래퍼임을 나타냅니다.

The run time user interface for this control is a window with an opaque background (single color, picture background, or both) that contains opaque ink.

이 시스템으로 실행되는 윈도우 서비스는 윈도우의 생성을 허용 interaction with the desktop를 허용하도록 설정 될 수있다 *. 지원은 분명히 단계적으로 진행되고 있지만 Microsoft에 의해 진행되고 있습니다.

+0

감사합니다. Simon. 실제로 테스트는 ccnet windows 서비스를 중지하고 ccnet.exe 콘솔을 실행 한 후 빌드를 강제했을 때 성공했습니다. 다시 확인하기 위해 콘솔을 닫고 서비스를 다시 시작한 다음 빌드를 다시 강제 실행했습니다. 테스트가 실패했습니다. 필자는 데스크탑 상호 작용이 활성화 된 로컬 시스템을 사용하기 위해 서비스 로그온을 변경하지 않았지만 기존의 코드를 다시 작성하여 조롱 할 수 있도록 설정할 것입니다. 레거시 코드를 가능한 많이 수정하는 것을 피하고 싶었지만 최상의 방법 일 것 같습니다. 다시 한번 감사드립니다. – Shifter

관련 문제