نانت, MbUnit, CruiseControl, السيلينيوم - مرور إعدادات الاختبار الجمعية

StackOverflow https://stackoverflow.com/questions/240263

سؤال

أنا أجمع بعض الأفكار من أجل الاختبار الآلي منصة تحتوي على السيلينيوم اختبار عداء.

أنا التفاف المسجلة السيلينيوم C# مخطوطات في MbUnit اختبار التي يتم تشغيلها عبر MbUnit نانت المهمة.السيلينيوم اختبار العميل التي تم إنشاؤها على النحو التالي:

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

كيف يمكنني تمرير host, port url الإعدادات في الاختبار حتى قيمها يمكن التحكم فيها عن طريق نانت المهمة ؟

على سبيل المثال, قد يكون لديك عدة السيلينيوم RC خوادم الاستماع و أريد استخدام نفس رمز اختبار يمر في كل عنوان الخادم بدلا من تضمين إعدادات في الاختبارات نفسها.

لدي النهج سخر باستخدام مخصص نانت مهمة كنت قد كتبت ولكنها ليست الحل الأكثر أناقة في الوقت الحاضر و كنت أتساءل إذا كان هناك طريقة أسهل لإنجاز ما أريد القيام به.

شكرا جزيلا إذا كان أي شخص يمكن أن تساعد.

هل كانت مفيدة؟

المحلول

وشكرا على الردود حتى الآن.

ومتغيرات البيئة يمكن أن تعمل، ومع ذلك، فإننا لا يمكن أن يتم تشغيل الاختبارات الموازية عن طريق تجميع اختبار واحد لذلك لا أريد أن تكون الكتابة إعدادات أثناء التنفيذ، والذي يمكن أن يكسر اختبار آخر. خط اهتمام الفكر الرغم من ذلك، شكرا، أعتقد أنني يمكن استخدام ذلك في مناطق أخرى.

وبلدي الحل الحالي ينطوي على نانت مهمة مخصصة بناء على رأس مهمة MbUnit، الذي يتيح لي الفرصة لتحديد المضيف، والميناء، وإعدادات رابط إضافية حسب الصفات. ثم يتم حفظ هذه كملف التكوين ضمن الدليل بناء ومن ثم قراءة من قبل في المجالس الاختبار. هذا يشعر قليلا "عالي الكعب" بالنسبة لي كما تحتاج بلدي التجارب أن ترث من فئة معينة. لا بأس بها ولكن أود أن يكون أقل تبعيات والتركيز على الاختبار.

وربما أنا مثيرة للقلق أكثر من اللازم !!

نصائح أخرى

ولدي الفئة الأساسية لجميع المباريات التي لديها اختبار رمز الإعداد التالية:

    [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 ثم أنها ستكون متوفرة في البرنامج النصي. وأعتقد أن هذا من شأنه أن العمل بالنسبة لك أيضا.

في أي وقت كنت في حاجة إلى الاندماج مع كيان خارجي باستخدام نانت إما في نهاية المطاف باستخدام exec المهمة أو كتابة المهام المخصصة.وبالنظر إلى المعلومات التي نشرت يبدو أن الكتابة الخاصة بك قد يكون في الواقع حل جيد ، ومع ذلك تصرح أنك لست سعيدة معه.يمكنك وضع قليلا على لماذا كنت لا تعتقد أنك الحل الحالي هو أنيقة ؟

التحديث

لا يعرفون الداخلية تفاصيل يبدو أنك قد حلها بشكل جيد مع المهام المخصصة.من ما سمعت هذا كيف كنت قد فعلت ذلك.

ربما حل جديد سوف تظهر نفسها في الوقت المناسب ولكن الآن تكون خفيفة على نفسك!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top