1

이 메시지는 현재 내가 당면한 문제와 관련이 있습니다. 주어진 단계 아래에서 내가 일하는 것과 내가 갇혀있는 부분에 대한 프로세스를 설명합니다.대나무에서 Nunit을 사용하여 Telerik 테스트를 실행할 수 없습니다. 브라우저를 시작할 때 예외가 발생했습니다.

  1. 나는
  2. 2010 NUNIT 단위 테스트 케이스로 변환 된 비주얼 스튜디오를 통해 Telerik 시험 스튜디오에서 기능 테스트 케이스를 만들었습니다.
  3. NUNIT 테스트 케이스는 CI 서버에 연결되어있을 때
  4. 버그가 발견되었다 작동하지 않습니다 NUNIT 러너 (CI)
  5. Telerik 시험 스튜디오 NUNIT 프로젝트를 통해 지속적인 통합 서버를 대나무에 연결되었다 만든 : -

다음은 버그 로그입니다.

ObjectReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

오류 및 실패 :

테스트 오류 : NUnitLoginTest.WebTest1UnitTest.SampleWebAiiTest은 System.NullReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. ArtOfTest.WebAii.Core.Manager.LaunchNewBrowser에서 ArtOfTest.WebAii.Core.Manager.LaunchNewBrowser (브라우저 유형 browserToLaunch, 부울 waitForBrowserToConnect, ProcessWindowStyle windowStyle, 문자열 인수) 에서 ArtOfTest.WebAii.Core.Manager.SetupDialogMonitoring() 에서 (브라우저 유형 browserToLaunch) E에서 NUnitLoginTest.WebTest1UnitTest.SampleWebAiiTest()에서 : \ 아누 급여 \ \ 가상 \ NUnitLoginTest \ NUnitLoginTest \ WebTest1UnitTest.cs : 라인 (140)

참고 : 테스트를 실행했을 때 동일한 오류를 받고 있어요 내 로컬 컴퓨터에. 그리고 콘솔을 사용하여 Bamboo를 시작합니다.

Windows 서비스에서 "서비스가 데스크톱과 상호 작용할 수 있도록 허용"을 이미 시도했습니다.

답변

0

Bamboo를 콘솔 모드에서 실행해야한다는 것이 맞습니다. 발견하지 못했다면, UI 테스트 기계가 작동하려면 UI 테스트를위한 활성 데스크탑이 있어야합니다. 우리의 벽판 기계는 큰 벽 모니터에서 멀리 떨어진 벽장에 자리 잡고 있으며, 아무 것도 사용되지 않은 패널을 가지고 있습니다. 이제는 원격 데스크톱을 통해 항상 UI 테스트 시스템이 활성화되어 있습니다.

조금 다른 생각을 구현했습니다. 저는 빌드 서버를 관리하는 소프트웨어 개발자입니다. 우리의 테스트 팀은 Telerik Test Studio를 사용하며 몇 시간에 한 번씩 실행되는 UI 테스트를 가장 간단하게 얻으려고했습니다. 위에서 언급 한 우리의 빌드 머신 중 하나는 이제 이것으로 임명되었으며 TestOut의 ArtOfTest.Runner 부분이 설치되었습니다.

테스터는 테스트 목록 기능 (mytests.aiilist)을 사용하지만이 기능은 단일 테스트 (mytest.tstest)에서도 작동한다는 것을 알고 있습니다. 프로젝트가 Visual Studio로 한 번만 수출되었습니다. 그런 다음 테스트를 작성하여 테스트 목록에 추가합니다. 그들의 전체 솔루션은 소스 제어에 있습니다. 모든 dll이 빌드 시스템에 도착하도록 모든 구성 요소의 bin 배포에 대한 vs 프로젝트를 수정했습니다.

ArtOfTest를 따른 후.러너 설치 지침은 어떤 경로에서나 실행할 수 있어야합니다. 따라서 빌드 머신에서 다음을 시도해보십시오. [AnyPath] \ ArtOfTest.Runner C : [테스트 또는리스트 파일의 전체 경로]

작동하게하려면 1/2 경로가 있어야합니다.

우리가이 않는 대나무와 함께이 킥오프 :

  1. 체크 아웃
  2. 이 빌드 소스 제어에서 전체 프로젝트 (확인 DLL을 빈에 들어가 만든다)
  3. 를 사용하여 테스트를 시작하기은 NAnt 스크립트

NAnt 스크립트가 원래 사용 된 이유는 우리 경로가 항상 같고 계산해야 할 필요가 있는지 알지 못했기 때문입니다. 우리는 지금도 그 길을 항상 알고 있지만, 여전히 일을 더 간단하게 만듭니다.

대나무 작업 구성 :

Executable: NAnt 
Build File: [Relative path from root of project]\RunMyTestList.build 
Targets: all 
Environment Variable: LIST="OneSetOfTests.aiilist" 

그리고 RunMyTestList.build은 NAnt 스크립트는 다음과 같습니다

<?xml version="1.0"?> 
<project default="all"> 
    <property name="ArtOfTest.Executable" value="ArtOfTest.Runner.exe" /> 
    <property name="ArtOfTest.ListFile" value="${path::get-full-path(environment::get-variable('LIST'))}" /> 
    <property name="returncode" value="" /> 
    <target name="all"> 
     <echo message="Start ArtOfTest.Runner: ${ArtOfTest.ListFile}" /> 
     <exec program="${ArtOfTest.Executable}" 
       resultproperty="returncode" 
       commandline="list=&quot;${ArtOfTest.ListFile}&quot;" 
       failonerror="true"/> 
     <echo message="Finish ArtOfTest.Runner: ${returncode}"/> 
    </target> 
</project> 

는 이제 테스트가 실행됩니다. 그러나 우리는 Bamboo의 상세한 목록이 아니기 때문에 빌드에 성공하거나 실패 할뿐입니다. 실제로 테스트가 아닌 NAnt 스크립트이기 때문입니다. 그러나 이것은 결국 축복이되었습니다. ArtOfTest.Runner는 단위 테스트 로그보다 훨씬 좋은 결과 파일을 작성합니다. 빌드 머신의 결과 폴더를 일반적으로 액세스 권한이없는 테스터와 공유해야했지만, 이제는 해당 공유를 매핑하고 Test Studio에서 결과 파일을 열고 단계별 스크린 캡처를 볼 수도 있습니다.

이 구성이 완벽하지 않다고 생각하며 더 조정할 것입니다. 중요한 것은 Bamboo를 모든 빌드, 테스트 및 배포에 사용했기 때문에 UI 테스트를 시작하기 위해 다른 것을 사용하는 데 관심이 없었기 때문입니다. 지금까지 모두가 매우 행복합니다. 희망을 도울 수 있습니다.