문제

자동화 된 테스트 플랫폼에 대한 아이디어를 모으고 테스트 러너를 위해 Selenium을보고 있습니다.

MBUNIT NANT 작업을 통해 트리거되고있는 MBUNIT 테스트에서 기록 된 셀레늄 C# 스크립트를 래핑하고 있습니다. 셀레늄 테스트 클라이언트는 다음과 같이 생성됩니다.

selenium = new DefaultSelenium("host", 4444, "*iexplore", "http://[url]/");

호스트, 포트 및 URL 설정을 테스트에 어떻게 전달하여 NANT 작업을 통해 해당 값을 제어 할 수 있습니까?

예를 들어, 여러 Selenium RC 서버가 듣고있을 수 있으며 테스트 자체 내에 설정을 포함하는 대신 각 서버 주소에서 동일한 테스트 코드를 전달하려고합니다.

나는 내가 쓴 맞춤형 작업을 사용하여 조롱하는 접근 방식을 가지고 있지만 현재 가장 우아한 솔루션은 아니며 내가하고 싶은 일을 더 쉬운 방법이 있는지 궁금했습니다.

누군가가 도와 줄 수 있다면 많은 감사합니다.

도움이 되었습니까?

해결책

지금까지 답변 해 주셔서 감사합니다.

환경 변수는 작동 할 수 있지만 단일 테스트 어셈블리를 통해 병렬 테스트를 실행할 수 있으므로 실행 중에 설정을 덮어 쓰는 것을 원하지 않으므로 다른 테스트를 중단 할 수 있습니다. 흥미로운 생각의 한 줄, 감사합니다. 다른 분야에서 사용할 수 있다고 생각합니다.

내 현재 솔루션에는 MBUNIT 작업 위에 맞춤형 작업 빌드가 포함되어있어 추가 호스트, 포트, URL 설정을 속성으로 지정할 수 있습니다. 그런 다음 빌드 디렉토리 내에서 구성 파일로 저장 한 다음 테스트 어셈블리에서 읽습니다. 테스트가 특정 클래스에서 상속해야하기 때문에 이것은 나에게 약간의 "clunky"라고 느낍니다. 그리 나쁘지는 않지만 종속성이 적고 테스트에 집중하고 싶습니다.

어쩌면 나는 너무 걱정하고있다 !!

다른 팁

다음 설정 코드가있는 모든 테스트 비품에 대한 기본 클래스가 있습니다.

    [FixtureSetUp]
    public virtual void TestFixtureSetup ()
    {
        BrowserType = (BrowserType) Enum.Parse (typeof (BrowserType),
            System.Configuration.ConfigurationManager.AppSettings["BrowserType"],
            true);
        testMachine = System.Configuration.ConfigurationManager.AppSettings["TestMachine"];
        seleniumPort = int.Parse (System.Configuration.ConfigurationManager.AppSettings["SeleniumPort"],
            System.Globalization.CultureInfo.InvariantCulture);
        seleniumSpeed = System.Configuration.ConfigurationManager.AppSettings["SeleniumSpeed"];
        browserUrl = System.Configuration.ConfigurationManager.AppSettings["BrowserUrl"];
        targetUrl = new Uri (System.Configuration.ConfigurationManager.AppSettings["TargetUrl"]);

        string browserExe;
        switch (BrowserType)
        {
            case BrowserType.InternetExplorer:
                browserExe = "*iexplore";
                break;
            case BrowserType.Firefox:
                browserExe = "*firefox";
                break;

            default:
                throw new NotSupportedException ();
        }

        selenium = new DefaultSelenium (testMachine, seleniumPort, browserExe, browserUrl);
        selenium.Start ();

        System.Console.WriteLine ("Started Selenium session (browser type={0})",
            browserType);

        // sets the speed of execution of GUI commands
        if (false == String.IsNullOrEmpty (seleniumSpeed))
            selenium.SetSpeed (seleniumSpeed);
    }

그런 다음 단순히 테스트 러너에게 구성을 제공합니다. 파일:

MSBuild의 경우 환경 변수를 사용하면 CC.NET 구성에있는 변수를 만들면 스크립트에서 사용할 수 있습니다. 나는 이것이 당신에게도 효과가 있다고 생각합니다.

Nant를 사용하여 외부 엔티티와 통합해야 할 때마다 실행 작업 또는 쓰기 a 맞춤형 작업. 당신이 게시 한 정보를 감안할 때 자신의 글을 쓰는 것이 실제로 좋은 해결책이 될 것 같지만, 당신은 당신이 그것에 만족하지 않는다고 말합니다. 현재 솔루션이 우아한 하나?

업데이트

모르고 내부 세부 사항은 사용자 정의 작업으로 잘 해결 한 것 같습니다. 내가 들었던 것에서 그것이 내가 한 방법입니다.

어쩌면 새로운 솔루션이 제 시간에 스스로를 보여줄 것입니다. 그러나 지금은 자신에게 가볍습니다!

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