डेटाबेस जो TFS एसक्यूएल प्रोजेक्ट का हिस्सा है के साथ tSQLt फ्रेमवर्क लागू

वोट
1

वातावरण

  • एसक्यूएल सर्वर - IaaS।

  • TFS का निर्माण और संबंधित डेटाबेस के लिए एसक्यूएल फ़ाइलों को तैनात करने के deployer

परिदृश्य

  • मैं अपने डेटाबेस के लिए एक TFS एसक्यूएल परियोजना है। हम TFS एसक्यूएल परियोजना में परिवर्तन करते हैं और इन TFS निर्माण का उपयोग कर परिवर्तन लागू।

  • TFS बिल्ड मेरी डेटाबेस तुलना और TFS एसक्यूएल Project.TFS बिल्ड पर्यावरण विशिष्ट स्क्रिप्ट उत्पन्न द्वारा अंतर स्क्रिप्ट उत्पन्न करता है।

  • मूल रूप से, अगर वस्तुओं डेटाबेस लेकिन SQL परियोजना में मौजूद में मौजूद तो यह उत्पन्न होगा नहीं हैं बयान बनाएं और यदि वस्तुओं डेटाबेस में मौजूद हैं लेकिन SQL परियोजना में लापता तो यह उत्पन्न होगा ड्रॉप बयान

मुसीबत

  • मैं लागू करना चाहते हैं tSQLt ढांचे मेरी database.What साथ सर्वोत्तम प्रथाओं हम उपरोक्त परिदृश्य पर विचार करके पालन कर सकते हैं होगा?

  • मूल रूप से - अगर हम एसक्यूएल परियोजना में वस्तुओं को बनाने के लिए, तो हम इन tsqlt ठेस तक वस्तुओं को तैनात करेगा। कौन सा अच्छा अभ्यास नहीं है?

11/10/2017 को 05:34
उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
3

आप अपने विश्वास है कि यह है कि आप tSQLt ढांचे या उत्पादन से जुड़े इकाई परीक्षण की तैनाती नहीं की जानी चाहिए में सही हैं।

समाधान आप के लिए देख रहे हैं समग्र परियोजनाओं । उदाहरण के लिए mydb कहा जाता है - अपने समाधान शायद पहले से ही अपने सभी कोड के साथ एक डेटाबेस परियोजना है। आप एक ही समाधान करने के लिए एक और डेटाबेस परियोजना जोड़ने की आवश्यकता होगी - आप इस MyDb.tests (हालांकि नाम महत्वपूर्ण नहीं है) कह सकते हैं। यह दूसरा डेटाबेस tSQLt ढांचे और अपने सभी परीक्षण का आयोजन करेगा। इस कदम से एक बहुत ही त्वरित कदम है:

  1. अपने सैंडबॉक्स पर एक खाली डेटाबेस MyDb.tests बुलाया बनाएं और इस डेटाबेस के लिए tSQLt ढांचे को जोड़ने
  2. दृश्य स्टूडियो में, अपने समाधान में नई MyDb.tests डेटाबेस परियोजना में MyDb.tests से tSQLt वस्तुओं आयात करते हैं। वैकल्पिक रूप से आप tSQLt डेटाबेस की एक dacpac बना सकते हैं और संदर्भ है कि हो सकता है। व्यक्तिगत रूप से, जब आयात करने, मैं आमतौर पर समूह वस्तुओं के लिए स्कीमा द्वारा के रूप में इस तो अच्छी तरह से परीक्षण वर्ग द्वारा अपनी परियोजना पर क्रमबद्ध चुनें।
  3. फिर भी दृश्य स्टूडियो में, MyDb.tests में, "मास्टर" फिर एक और डेटाबेस संदर्भ अपने mydb डेटाबेस परियोजना के लिए अपने समाधान में जोड़ने के लिए एक डेटाबेस संदर्भ जोड़ें। सुनिश्चित करें कि आप एक ही सर्वर, एक ही डेटाबेस निर्दिष्ट करते हैं। Mydb में अपने उत्पादन कोड लिखने के लिए जारी रखने whilst MyDb.tests को परीक्षण जोड़ना शुरू करें।
  4. जब आप का निर्माण करने या अपने सैंडबॉक्स में MyDb.Tests प्रकाशित करते हैं, जिसके परिणामस्वरूप डेटाबेस tSQLt ढांचे, अपने परीक्षण और सभी वस्तुओं और कोड mydb से शामिल होंगे।
  5. MyDb.tests में, आप भी एक के बाद तैनाती स्क्रिप्ट जो करने के लिए एक फोन भी शामिल है जोड़ सकते हैं tSQLt.RunAllताकि आपके सभी परीक्षण हर आप फिर से bublish MyDb.tests परियोजना चलाए जा रहे हैं।

आप परीक्षण करने के लिए, UAT या उत्पादन को तैनात करने आते हैं, तो आप सिर्फ निर्माण और mydb परियोजना से प्रकाशित और tSQLt ढांचे या परीक्षण से कोई भी शामिल किया जाएगा।

इस की तुलना में यह करने के लिए थोड़ा और है - आप SSMS में विकसित करने के लिए तो दृश्य स्टूडियो के लिए अपने वस्तुओं को आयात वापस पसंद करते हैं लेकिन यहां दिए गए लिंक मदद मिल सकती है के एक जोड़े हैं, खासकर यदि:

https://kzhendev.wordpress.com/2014/01/08/setting-up-ssdt-database-projects-and-tsqlt/

https://www.red-gate.com/simple-talk/sql/sql-tools/sql-server-data-tools-ssdt-and-database-references/

12/10/2017 को 05:29
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more