문제

MSBuild에서 실행 중인 Fitnesse 테스트를 TFS의 야간 빌드에 통합하려고 합니다.

자체 포함되도록 하기 위해 피트니스에서 필요할 때만 SeleniumRC 서버를 시작하고 싶습니다.

"Command Line Fixture"가 있는 것을 보았지만 Java로 작성되어 있는데 그것을 사용할 수 있습니까?

도움이 되었습니까?

해결책

내 생각엔 당신이 할 수 있을 것 같아요.다음을 사용하여 MSBuild에서 모든 프로세스를 쉽게 호출할 수 있습니다. 일.그러나 이 작업을 수행할 때의 문제는 exec 작업이 계속하기 전에 Selinium 프로세스가 완료될 때까지 기다린다는 것입니다. 이는 원하는 동작이 아닙니다.프로세스를 실행하고 빌드하는 동안 계속 실행한 다음 빌드가 완료되면 해체하려고 합니다.

따라서 이 작업을 수행하려면 사용자 지정 MSBuild 작업을 만들어야 할 것 같습니다.빌드 스크립트에 제어권을 다시 반환하는 비동기식으로 실행되는 누군가가 생성한 작업의 예는 다음 게시물을 참조하세요.

http://blog.eleutian.com/2007/03/01/AsyncExecMsBuildTask.aspx

MSBuild에서 Java 프로그램을 호출하는 예(이 경우에는 동기식)를 보려면 다음을 호출하는 작업을 살펴보세요. MSBuild의 개미 여기

http://teamprise.com/products/build/

MSBuild 작업의 일부로 생성한 프로세스 ID를 출력 속성에 출력하여 빌드 스크립트 끝에서 프로세스를 종료하는 다른 사용자 지정 MSBuild 작업을 호출할 수 있도록 할 수 있습니다.MSBuild에서 변수로 전달된 프로세스 ID를 찾은 다음 호출하여 이를 수행할 수 있습니다. 프로세스.킬 즉, 방법

Process process = Process.GetProcessById(ProcessId);
process.Kill();

즉, 빌드의 오류 경로 등 중에 종료 작업이 포함되었는지 확인하여 종료 작업이 MSBuild에서 항상 실행되도록 주의해야 합니다.Selenium RC 시작 작업이 다른 SeleniumRC 프로세스를 찾도록 하고 새 프로세스를 시작하기 전에 프로세스를 종료함으로써 상황을 좀 더 탄력적으로 만들 수 있습니다. 이렇게 하면 어떤 이유로 프로세스가 제대로 닫히지 않으면 프로세스가 다음까지만 실행됩니다. 다음 빌드.

어쨌든 - 내 대답은 많은 작업처럼 들리므로 다른 사람이 더 쉬운 방법을 생각해 낼 수 있기를 바랍니다.FitNesse 테스트의 테스트 스위트 시작 시 seleniumRC 프로세스를 생성하고 스위트 종료 시 이를 종료할 수 있습니다. 또는 FitNesse 러너 작업을 확장하고 이전에 seleiniumRC를 비동기적으로 실행하는 사용자 정의 작업을 작성할 수도 있습니다. 테스트 프로세스를 실행한 다음 나중에 종료합니다.

행운을 빌어요,

남자 이름.

다른 팁

답장을 보내주셔서 감사합니다!

이것이 제가 지금까지 해왔던 방식입니다.

나는 제공된 명령줄(내 경우에는 startSelenium.bat)을 사용하여 프로세스를 시작하는 적합한 고정 장치(매우 간단함)를 만들었습니다.고정 장치는 ProcessID를 반환하므로 이를 피트니스 컨텍스트에 저장하고 나중에 해당 세션을 닫을 수 있습니다.

이제 체력 테스트에서 다음과 같은 SuiteSetUp 페이지를 만들 수 있습니다.

|RunCommandFixture|

|명령줄|RunCommand?|

|C:\Projects...\startSeleniumRC.bat|>>셀레늄프로세스|

그리고 SuiteTearDown은 이와 같습니다

|RunCommandFixture|

| ProcessID | STOPCOMMAND? | |

그것은 나에게 효과적입니다.내 체력 테스트의 요청으로 셀레늄 RC가 시작되지 않습니다.

빌드 스크립트에 의해 실행되는 Process.Start("selenumRC 명령줄")을 수행하는 간단한 .NET 앱을 작성하는 것은 어떻습니까?

Selenium 경로에서 그리 멀지 않은 경우;유사한 .NET 브라우저 자동화 도구를 살펴보시기 바랍니다.특히 WatiN 또는 ArtOfTest.이들의 "스택"은 완전히 .NET이므로 다른 컴퓨터에서 실행하는 것이 훨씬 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top