كيفية تشغيل حالات الاختبار على لائحة الجرار مختلفة قليلا؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

ولدي قائمة من الملفات جرة، وكلها تحتوي على إصدارات مختلفة قليلا من نفس النظام.

وأريد أن تنفيذ مجموعة من حالات الاختبار على كل ملف جرة حين التمكن من الحصول على النتائج لكل جرة (عبر RunListener أو شيء من هذا القبيل).

وأنا مشوشة قليلا مع مشاكل الطبقة تحميل التي يتم ضمنية.

وكيف يمكنني القيام بذلك بشكل جيد؟

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

المحلول

إذا كنت تستخدم النمل، فإن المهمة أداة JUnit يأخذ CLASSPATH.

<target name="test">
  <junit ...">
    <classpath>
      <pathelement path="${test.jar.path}" />
    </classpath>
    ...
  </junit>
</target>

ويمكنك استخدام المهمة antcall للاتصال هدف الاختبار مرارا وتكرارا بقيمة اختلف عن الممتلكات test.jar.path.

نصائح أخرى

إذا الجرار الحفاظ على نفس الواجهة، ثم كل ما عليك القيام به هو تشغيل كل اختبار مع CLASSPATH مختلف سلايلي - في كل مرة مع الجرار من إصدار آخر

إذا كنت تستخدم الكسوف التكامل أداة JUnit، مجرد خلق N تكوينات المدى، في كل واحد في علامة التبويب CLASSPATH تحديد الجرار المطلوبة.

إذا كنت تريد أن تفعل ذلك برمجيا، ثم أقترح عليك أن تبدأ مع CLASSPATH فارغة واستخدام <لأ href = "http://java.sun.com/j2se/1.4.2/docs/api/java/net/ URLClassLoader.html "يختلط =" نوفولو noreferrer "> URLClassLoader ، ويعطيها مجموعة مختلفة من الجرار في كل مرة.

وشيء من هذا القبيل:

URLClassloader ucl = new URLClassLoader( list of jars from version1 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();

ucl = new URLClassLoader( list of jars from version2 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top