أين يجب أن أضع رمز الاختبار الخاص بي فيما يتعلق بالقانون الذي يختبره؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

الأماكن الواضحة التي يمكنني التفكير فيها ستكون نوعا من مجلد "اختبار" بجوار التعليمات البرمجية مباشرة. لذلك مثل شيء:

\project-code
    \my-feature
        \production-code
        \testing
            ***my tests***
    \co-workers-feature
        \production-code
        \testing

أو يمكنني تقسيم رمز الاختبار التسلسل الهرمي منفصل تماما. لذلك مثل شيء:

\project-code
    \my-feature
    \co-workers-feature
\testing-project-code
    \my-feature
        ***my tests***
    \co-workers-feature

لقد رأيت الكثير من الأطر تستخدم النهج الثاني، لكننا مؤخرا أننا نضع كود اختبارنا داخل رمز الإنتاج في الغالب للراحة. هو نهج واحد أفضل بكثير من الآخر أم أن هناك أفضل الممارسات هنا؟

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

المحلول

أنا استخدم الخيار الثاني. هذا يعني أنه يمكنني شحن الكود دون الاختبارات إذا لزم الأمر. أيضا من النظر إلى الفصل أو الحزمة أعرف أين اختبارات الوحدة لذلك.

إليك سؤال ذي صلة:

هل وضعت اختبارات الوحدات في نفس المشروع أو مشروع آخر؟

نصائح أخرى

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

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

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

إذا كان موقع الويب الذي تتحكم فيه، فلا تؤذي أنه كله في نفس المجلد. إذا كان برنامجه الكلاسيكي الذي تطلقه ثم يميل إلى أن تكون ممارسات جيدة لإتصاله كما هو الحال في الحالة 2 بحيث لا تسبب أي فاصل عند إصداره.

بالنسبة لي، الخيار الأول يجعل أكثر منطقية، خاصة من وجهة نظر SCM: يتم الاحتفاظ برمز الإنتاج ورمز الاختبار بشكل جيد في المزامنة (كما يجب)، وإذا قمت بوضع علامة أو فرع مشروعك أو تجميعها أو فرع كل من الإنتاج اختبار رمز في نفس الوقت (كما ينبغي).

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