2014-09-01 7 views
1

C#으로 작성된 셀레늄 테스트가 nunit-console.exe를 사용하여 명령 줄에서 실행되는 .dll로 컴파일됩니다. 이러한 테스트 뒤에하나의 변수로 NUnit 테스트 케이스를 실행

아이디어들이 사용된다는 것입니다 ...

이 테스트는 하나 개의 사이트에서 구성된 내 테스트 환경에서 순간을 위해 잘 작동되지만, 시험보다 일반적인 목적으로 내가 필요 소프트웨어가 배포 된 후 배포되는 소프트웨어는 IIS에 사이트를 설정하며이 사이트는 당시 사용 가능한 것을 기반으로 자동 할당되는 포트에 바인딩됩니다. 웹 사이트가 어느 포트에서 실행되는지를 알기 위해 내 테스트가 필요합니다. 그렇지 않으면 잘못된 사이트를 테스트했을 수 있습니다. 내가 사용하고있는 배포 도구의 반환 값을 사용하여 실행중인 포트를 식별 할 수 있습니다.

내 질문에 대한 답변 : 이미 컴파일 된 Selenium 테스트에서 사용할 수있는 nunit-console에 인수 (예 : 웹 사이트 포트 번호)를 전달할 수 있습니까?

내가 생각할 수있는 유일한 솔루션은 배포 후에 테스트를 작성하는 것입니다. 나는 소프트웨어가 이미 빌드 단계를 거치고 있기 때문에 이것을 피하고 싶다. 그리고 구축 작업을 수행하는 동안 서버 (Bamboo) 빌드 프로세스가 가시성을 잃어 버리면 다시 구축하는 것이 나에게 지저분 해 보인다.

미리 감사드립니다.

+0

구성입니다. 그래서 구성 파일. 배포의 반환 값이 어떤 포트인지 알려줍니다. 따라서 PowerShell과 같은 스크립팅 언어를 사용하여 구성 파일을 읽고 편집하십시오. 작업 완료. – Arran

답변

3

환경 변수를 사용할 수 있습니다. 당신의 셀레늄 테스트에서

당신은

var port = System.Environment.GetEnvironmentVariable("SITE_PORT");

로 읽을 수 있으며 예를 들어 배치 스크립트, 다른 소스를 설정하거나 메시지를 표시 :

set SITE_PORT=<result of command>

+0

감사합니다.이 솔루션이 가장 잘 작동하는지 확인할 수 있습니다. –

0

가 AFAIK있다 NUnit의 현재 버전에서는 그렇게 할 수 없습니다. 귀하의 경우에 가능한 해결책 중 하나는 구성 파일을 사용하는 것입니다 (때로는 사용함). 어떤 포트에서 테스트가 실행되고 있는지 알면 그 정보를 설정 파일에 저장하고 ConfigurationManager를 사용하여 데이터를 가져올 수 있습니다 (url 또는 wathether 필요). 테스트를 변경하는 데 너무 많은 시간을 소비하지 않을 것입니다 (거의 필요하지 않습니다. 설정 파일에서 url을 가져 와서 올바른 위치에 붙여 넣기 =)).

관련 문제