كيف يمكنني الرجوع إلى ملف بيانات مضمن لاختبارات الوحدة القائمة على البيانات؟

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

سؤال

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

أحاول الوصول إلى ملف Excel 2003 باستخدام مزود Microsoft Jet OLEDB. يعمل اختبار الوحدة بشكل جيد عندما يكون الملف في القيادة الصلبة ولكن ليس عندما أحاول الوصول إلى ملف التجميع المدمج. هنا مثال:

أصلي

DeploymentItem ("IHRM.Infrantructure.efrepositories.tests datadriven.xls") ، dataSource ("system.data.oledb" ، "provider = microsoft.jet.oledb.4.0 ؛ data source = | datadirectory | dataDRIVER.XLS ؛ خصائص ممتدة = "excel 8.0 " "،" sheet1 $ "، dataAccAccessMethod.Sequential) ، testMethod

مقترح

datasource ("system.data.oledb" ، "Provider = microsoft.jet.oledb.4.0 ؛ Data Source ="ماذا تضع هنا"؛ الخصائص الممتدة = "excel 8.0 " "،" sheet1 $ "، dataAccessMethod.Sequential) ، deploymentItem (" ihrm.Infricture.efrepositories.tests datadriven.xls ") ، testmethod

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

المحلول

أشك في أن Jet OLEDB لديها دعم الصندوق للاتصال بقواعد البيانات بناءً على موارد مضمنة. أرى خيارين للعمل حول هذا:

1. استخراج المورد

في اختبارك classinitialize, ، يمكنك استخراج مورد التجميع إلى موقع معروف. ارجع إلى هذا الموقع المعروف في سلسلة اتصال النفاثة الخاصة بك. قم بتنظيف الملف المستخرج مرة أخرى في اختبارك classcleanup.

2. اكتب مصدر البيانات الخاص بك

أنت ربما تكون قادرًا على كتابة خاصتك dbproviderfactory الذي يدعم الوصول إلى ملفات Excel المضمنة. لجعل مثل هذا المصنع يمكن اكتشافه لـ MSTEST ، يجب عليك ذلك سجل المصنع الخاص بك مع dbproviderfactories.

لمعرفة كيف تعالج MSTEST مصادر البيانات داخليًا ، افتح Microsoft.VisualStudio.QualityTools.Common.dll التجميع مع العاكس وابدأ في متابعة الطريق عن طريق تفكيك Microsoft.VisualStudio.TestTools.Utility.TestDataConnection.Create.

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