سؤال

أود أن تنفيذ شفرة جافا سكريبت من خلال C# الجمعية ولها نتائج شفرة جافا سكريبت عاد إلى استدعاء التعليمات البرمجية C#.

أنه من الأسهل لتحديد الأشياء التي أنا لا أحاول القيام به:

  • أنا لا أحاول أن الدعوة وظيفة جافا سكريبت في صفحة ويب من التعليمات البرمجية خلف.

  • أنا لا أحاول تحميل عنصر التحكم WebBrowser.

  • أنا لا أريد أن يكون جافا سكريبت إجراء اياكس الاتصال إلى ملقم.

ما أريد القيام به هو كتابة وحدة الاختبارات في جافا سكريبت ثم وحدة الاختبارات خرج سلمان حتى نص عادي سيكون على ما يرام.ثم أريد أن يكون عامة من الفئة C#/executible التي يمكن تحميل الملف الذي يحتوي على شبيبة تشغيل شبيبة وحدة الاختبارات ، الخردة/تحميل النتائج والعودة تمرير/تفشل مع تفاصيل من خلال وظيفة-بناء المهمة.

أعتقد أنه من الممكن استخدام ActiveX ScriptControl ، ولكن يبدو أنه يجب أن يكون هناك .صافي طريقة للقيام بذلك دون استخدام SilverLight ، DLR ، أو أي شيء آخر لم يتم شحنه حتى الآن.أي شخص لديك أي أفكار ؟

تحديث: من براد أبرامز بلوق

namespace Microsoft.JScript.Vsa
{
    [Obsolete("There is no replacement for this feature. " +
              "Please see the ICodeCompiler documentation for additional help. " +
              "http://go.microsoft.com/fwlink/?linkid=14202")]

التوضيح:لدينا وحدة الاختبارات لدينا جافا سكريبت وظائف مكتوب في جافا سكريبت باستخدام JSUnit الإطار.الآن أثناء عملية الإنشاء ، يجب أن يدويا تحميل صفحة ويب ثم انقر فوق زر للتأكد من أن كل من جافا سكريبت وحدة الاختبارات تمر.أود أن تكون قادرة على تنفيذ الاختبارات من خلال وظيفة-بناء العملية عندما الآلي C# وحدة الاختبارات يتم تشغيل التقرير نجاح/فشل جانب من خارج C# وحدة الاختبارات واستخدامها كمؤشر على ما إذا كان أو لم يكن بناء مكسورة.

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

المحلول

يمكنك تشغيل JSUnit من داخل نانت باستخدام JSUnit الخادم ، هو مكتوب في جاوة و ليس هناك نانت المهمة ولكن يمكنك تشغيله من موجه الأوامر, نتائج تسجيل مثل XML و يمكن لهم ودمجهم مع بناء عملية إعداد التقرير.هذا لن يكون جزءا من Nunit النتيجة ولكن إضافي التقرير.فشلنا في بناء إذا كان أي من تلك فشل الاختبار.نحن نفعل بالضبط باستخدام CC.Net.

نصائح أخرى

يجب أن تكون جميلة النفس explanitory لذا سأقوم بعد ذلك.

<add assembly="Microsoft.Vsa, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies>

    using Microsoft.JScript;

    public class MyClass {

    public static Microsoft.JScript.Vsa.VsaEngine Engine = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();

        public static object EvaluateScript(string script)
        {
            object Result = null;
            try
            {
                Result = Microsoft.JScript.Eval.JScriptEvaluate(JScript, Engine);
            }
            catch (Exception ex)
            {
                return ex.Message;
            }

            return Result;
        }

        public void MyMethod() {
            string myscript = ...;
            object myresult = EvaluateScript(myscript);
        }


    }

يمكنك استخدام Microsoft محرك جافا سكريبت ل تقييم شفرة جافا سكريبت من C#

تحديث:هذا هو عفا عليها الزمن كما VS 2008

أنا لا أعرف من أي .صافي طريقة محددة للقيام بذلك الآن...لا يزال هناك JScript.NET لكن ذلك ربما لن تكون متوافقة مع ما شبيبة تحتاج إلى تنفيذ :)

ومن الواضح أن المستقبل سيكون .صافي JScript تنفيذ DLR الذي هو قادم...في يوم من الأيام (أمل).

بحيث ربما يترك تشغيل القديم ActiveX JScript المحرك التي من الممكن بالتأكيد أن تفعل ذلك من .صافي (لقد فعلت ذلك في الماضي ، على الرغم من انها قليلا على الجانب القبيح!).

إذا كنت لا تنفيذ التعليمات البرمجية في سياق المتصفح ، لماذا الاختبارات تحتاج إلى أن تكون مكتوبة في جافا سكريبت ؟ من الصعب أن نفهم الصورة أكبر من ما كنت تحاول إنجاز هنا.

يمكن أن يكون أسهل للاستخدام JSUnit كتابة الاختبارات الخاصة بك ثم استخدام WatiN الاختبار المجمع تشغيلها من خلال C#, النجاح او الفشل استنادا إلى JSUnit النتائج ؟

هو في الواقع خطوة إضافية على الرغم من.

أعتقد أنني قرأت في مكان ما أن النسخة القادمة إما MBUnit أو WatiN لديهم وظائف مدمجة في عملية JSUnit اختبار المباريات.إلا إذا كان يمكنني أن أتذكر أين قرأت أن...

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