unit testing - ভিজ্যুয়াল স্টুডিও 2015 বা 2017 ইউনিট পরীক্ষাগুলি আবিষ্কার করে না




unit-testing visual-studio-2015 (20)

সম্পাদনা 2016-10-19 (পাওয়ারশেল স্ক্রিপ্ট)

এই ইস্যুটি এখনও প্রতি এবং পরে ফিরে আসে। আমার জন্য প্রাসঙ্গিক ক্যাশে / টেম্প ফোল্ডার / ফাইলগুলি সাফ করে স্বয়ংক্রিয় করতে আমি একটি ছোট পাওয়ারশেল স্নিপেট লিখেছিলাম। আমি এটি ভবিষ্যতের পাঠকদের জন্য এখানে ভাগ করছি:

@(
"$env:TEMP"
"$env:LOCALAPPDATA\Microsoft\UnitTest"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\1033\SpecificFolderCache.xml"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\1033\ProjectTemplateMRU.xml"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\ComponentModelCache"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\Designer\ShadowCache"
"$env:LOCALAPPDATA\Microsoft\VisualStudio\14.0\ImageLibrary\cache"
"$env:LOCALAPPDATA\Microsoft\VisualStudio Services\6.0\Cache"
"$env:LOCALAPPDATA\Microsoft\WebsiteCache"
"$env:LOCALAPPDATA\NuGet\Cache"
) |% { Remove-Item -Path $_ -Recurse -Force }

আগেই ভিজ্যুয়াল স্টুডিওটি বন্ধ করে রাখার বিষয়টি নিশ্চিত করুন এবং এটির পরে পুনরায় বুট করা ভাল ধারণা।

টিএমপি ফোল্ডারটি মুছে ফেলা প্রয়োজন হবে না এবং কিছু ক্ষেত্রে এমনকি অনাকাঙ্ক্ষিতও হতে পারে, তাই আমি প্রথমে টিএমপি ফোল্ডারটি সাফ না করে চেষ্টা করার পরামর্শ দেব। কেবল "$env:TEMP" বাদ দিন।

আসল উত্তর 2015-04-12

ভিজ্যুয়াল স্টুডিও সম্পর্কিত টেম্প / ক্যাশে ফোল্ডারগুলি পুঙ্খানুপুঙ্খভাবে পরিষ্কার করার পরে সমস্যাটি "সমাধান করা" হয়েছিল।

যেহেতু আমার কাছে একে একে সব কিছু করার এবং তারপরে পরীক্ষার সময় ছিল না, তাই দুর্ভাগ্যক্রমে আমি জানি না যে আসলে কোনটি সমস্যাটি সৃষ্টি করেছিল।

এই হ'ল সঠিক পদক্ষেপগুলি:

  1. বন্ধ ভিজ্যুয়াল স্টুডিও
  2. সিস্টেম এবং ব্রাউজারের temp ফাইল / ফোল্ডারগুলি সাফ করতে সিসিলিয়নার ব্যবহার করা হয়েছে
  3. ম্যানুয়ালি নীচের ফাইলগুলি / ফোল্ডারগুলি সাফ / মুছে ফেলা হয়েছে:

    • %USERPROFILE%\AppData\Local\assembly
    • %USERPROFILE%\AppData\Local\Microsoft\UnitTest
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\1033\SpecificFolderCache.xml
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\1033\ProjectTemplateMRU.xml
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\Designer\ShadowCache
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ImageLibrary\cache
    • %USERPROFILE%\AppData\Local\Microsoft\VisualStudio Services\6.0\Cache
    • %USERPROFILE%\AppData\Local\Microsoft\WebsiteCache
    • %USERPROFILE%\AppData\Local\NuGet\Cache
    • %USERPROFILE%\AppData\Local\Temp

সম্পাদনা 2016-10-19:

মূল প্রশ্নটি XUnit পরীক্ষা রানারের সাথে VS2015 সিটিপি 6-তে নির্দিষ্ট কোনও সমস্যা সম্পর্কিত ছিল। উত্তরগুলি থেকে এটি পরিষ্কার যে ভিজ্যুয়াল স্টুডিওতে ইউনিট পরীক্ষা আবিষ্কারের সাথে অনেক বিস্তৃত সমস্যা রয়েছে যা বিভিন্ন পরিস্থিতিতে ঘটতে পারে। এটি প্রতিফলিত করতে আমি আমার প্রশ্ন পরিষ্কার করেছি ed

আমি আমার নিজের উত্তরে একটি স্ক্রিপ্টও অন্তর্ভুক্ত করেছি যা এখনও উপস্থিত থাকলে একই ধরণের সমস্যাগুলি সমাধান করার জন্য আমি আজও ব্যবহার করি।

অন্যান্য অনেক উত্তর ভিএস পরীক্ষার রানার জটিলতা আরও ভালভাবে বুঝতে সাহায্য করেছে pro আমি কৃতজ্ঞ যে মানুষ এখনও তাদের সমাধান ভাগ করে নিচ্ছে!

আসল প্রশ্ন 2015-04-10:

গতকাল থেকে, আমার ভিজ্যুয়াল স্টুডিও টেস্ট এক্সপ্লোরার আমার কোনও প্রকল্পের জন্য পরীক্ষা আবিষ্কার করবে না। এটি নির্মাণের পরে সবুজ লোডিং বারটি প্রদর্শন করে না।

আমি যখন ভিজ্যুয়াল স্টুডিও টেস্ট এক্সপ্লোরারগুলিতে যাই এবং "সমস্ত রান করুন" ক্লিক করি বা যখন আমি কোনও পরীক্ষার পদ্ধতিতে ডান ক্লিক করি এবং "রান টেস্টগুলি" নির্বাচন করি, তখন আমি আমার আউটপুট উইন্ডোতে নিম্নলিখিতটি পাই:

Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

আমি উইন্ডোজ 10 প্রো টেকনিক্যাল পূর্বরূপে ভিজ্যুয়াল স্টুডিও 2015 সিটিপি 6 চালাচ্ছি, 10041 তৈরি করুন।। নেট ফ্রেমওয়ার্ক সংস্করণটি তেমন মনে হয় না - এটি 4.0 , 4.5.2 এবং 4.6 ঘটে।

আমি নিম্নলিখিত পরীক্ষামূলক ফ্রেমওয়ার্কগুলি দিয়ে চেষ্টা করেছি এবং সেগুলি সমস্ত একই আচরণ দেয়:

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
  • xunit v2.1.0-beta1-build2945 xunit.runner.visualstudio v2.1.0-beta1-build1051
  • NUnit v2.6.4 NUnitTestAdapter v2.0.0

আমি গিটহাবের (xunit) তে একটি সমস্যা পেয়েছি যা একই রকমের বলে মনে হয়েছিল: xunit টিমের এই মন্তব্যে # 295 পরীক্ষা পাওয়া যায় না :

সচেতন থাকুন যে ভিজ্যুয়াল স্টুডিও 2015 সিটিপি 5 সাধারণভাবে ইউনিট টেস্টিং সহ অনেকেই (কেবল xUnit.net নয়) ভেঙে পড়েছে বলে জানা গেছে, তাই এটি কাজ করার আশা করবেন না।

এছাড়াও, দয়া করে নিশ্চিত হয়ে নিন যে আপনি ভিজ্যুয়াল স্টুডিওর রানার ক্যাশে সাফ করেছেন। যদি এটি দূষিত হয়ে যায়, ভিজুয়াল স্টুডিও মুছে ফেলা না হওয়া পর্যন্ত স্থায়ীভাবে দুর্ব্যবহার করবে। ক্যাশেটি সাফ করতে, ভিজ্যুয়াল স্টুডিওর সমস্ত দৃষ্টান্ত বন্ধ করুন, তারপরে% TEMP% \ ভিজ্যুয়ালস্টুডিওস্টেস্ট এক্সপ্লোরার এক্সটেনশানগুলি মুছে ফেলুন (সত্যি কথা বলতে,% TEMP% এ মুছে ফেলা সম্ভব নয়)

%TEMP%\VisualStudioTestExplorerExtensions মুছে ফেলার জন্য আমি তাদের পরামর্শটি চেষ্টা করেছি। দুর্ভাগ্যক্রমে সমস্যাটি স্থির হয়নি।

আমি লক্ষ্য করেছি যে রিশার্পার আসলে কিছু পরীক্ষা আবিষ্কার করতে সক্ষম। এটি কেবল ভিএস এবং নুনিট পরীক্ষার জন্য কাজ করে, xunit এর জন্য নয়।

আমাকে কিছু ধরণের টেম্প বা ক্যাশে ফোল্ডার সাফ করতে হবে, তবে আমি জানি ভিজ্যুয়াল স্টুডিওতে তাদের অনেকগুলি রয়েছে এবং তাদের সমস্ত অনাকাঙ্ক্ষিত পার্শ্ব-প্রতিক্রিয়া ছাড়াই মুছে ফেলা যায় না।


আপনার পরীক্ষা প্রকল্পের xunit.runner.visualstudio আপনার xunit.runner.visualstudio প্যাকেজ রয়েছে এবং তাও সঠিকভাবে পুনরুদ্ধার করা হয়েছে তা নিশ্চিত করুন।

আমি জানি এটি মূল প্রশ্নের ক্ষেত্রে ছিল না তবে এটি আমার মতো কারও জন্য সময় সাশ্রয় করতে পারে।


আমার অবাক করার জন্য, %TEMP% ডিরেক্টরিতে অবস্থিত টেম্প ফাইলগুলি ক্লিয়ারিং আমার জন্য সমস্যাটি সমাধান করেছে।

দ্রষ্টব্য: এই পথটি সাধারণত C:\Users\(yourusername)\AppData\Local\Temp

@ ওয়ারেন-পি অন্তর্ভুক্ত হিসাবে, আপনি স্টার্ট মেনুতে %temp% রেখে টেম্প ফোল্ডারে নেভিগেট করতে পারেন, বা "ফাইল এক্সপ্লোরার" চালু করতে পারেন এবং ঠিকানা বারে %temp% প্রবেশ করতে পারেন।


আমার একই প্রলেম ছিল তবে আমার মেশিনে "% TEMP% \ ভিজ্যুয়াল স্টুডিওটস্টে এক্সপ্লোরার এক্সটেনশানস" ফোল্ডারটি উপস্থিত ছিল না তাই পোস্টগুলি পড়ার সাথে সাথে আমার এটি তৈরির ধারণা ছিল এবং এটি কার্যকর হয়। পরীক্ষা এক্সপ্লোরার এখন আমার সমস্ত পরীক্ষা দেখাতে সক্ষম। ধন্যবাদ।


আমার এর সম্পূর্ণ উত্তর নেই তবে আমি একটি পরীক্ষা প্রকল্পের সাথে খেলে কিছু জিনিস নির্ধারণ করেছি:

  1. xunit.runner.aspnet : 2.0.0-aspnet-beta4 যা অফিশিয়াল বিটা 4 এসপনেট 5 রিলিজের অংশ বলে মনে হয় ভিজ্যুয়াল স্টুডিওতে কাজ করে না।
  2. পরিবর্তে, "xunit": "2.1.0-*" এবং "xunit-runner.dnx": "2.1.0-*" প্যাকেজগুলি ভিজ্যুয়াল স্টুডিওতে কাজ করে।
  3. পরীক্ষাগুলি আবিষ্কারের জন্য ভিএসের জন্য, আপনার প্রকল্পের "টেস্ট" নামে একটি সিঙ্গেল কমান্ড থাকতে হবে যা "xunit.runner.dnx" চালায়। অতিরিক্ত কমান্ড যুক্ত করা এটি ভেঙে যেতে পারে।
  4. যদি এখনও আপনার টেস্ট এক্সপ্লোরার উইন্ডোটি খালি হয়ে যায়, তবে আপনার প্রকল্প থেকে "পরীক্ষা" কমান্ডটি সরিয়ে ফেলুন, তারপরে সমাধানটি পুনরায় তৈরি করুন, তারপরে "টেস্ট" কমান্ডটি প্রজেক্ট.জেসনে যুক্ত করুন।
  5. @ ফ্রেড-ক্লুভারের পরামর্শ অনুসারে আপনার সমস্ত ক্যাশে সাফ করা সহায়তা করতে পারে তবে আমি বিচ্ছিন্নভাবে সমস্ত পদক্ষেপগুলি করি নি, তাই আমি নিশ্চিত নই।

এটি দৈনিক নয়, বিটা 4 রিলিজ ব্যবহার করে ভিএস 2015 সিটিপি 6 অনুযায়ী বর্তমান।


আমার ক্ষেত্রে (ভিজ্যুয়াল স্টুডিও এন্টারপ্রাইজ 2015 14.0.25425.01 আপডেট 3, পুনরায় ভাগ করুন 2016.2) আমার কেবল বিল্ড মেনু থেকে একটি পরিষ্কার সমাধান করা দরকার। সমাধানটি পুনর্নির্মাণের পরে পরীক্ষার এক্সপ্লোরারকে "জাগ্রত" করার জন্য এবং সমস্ত পরীক্ষা আবার খুঁজে পেতে পারে।


আমার ক্ষেত্রে সমাধানটি ছিল কেবলমাত্র আমার ভিজ্যুয়াল স্টুডিও 2015 এ নুনিট 3 টেস্ট অ্যাডাপ্টার এক্সটেনশনটি ইনস্টল করা।


আমার ক্ষেত্রে, ভিএস 2015 এর অধীনে এমএসটিস্ট পরীক্ষার (অর্থাত্ পদ্ধতি) নামের পরীক্ষাগুলি উপেক্ষা করছে যা 174 টির চেয়ে বেশি অক্ষরের। নামটি সংক্ষিপ্ত করে পরীক্ষাটি দৃশ্যমান হওয়ার অনুমতি দেয়। এটি পরীক্ষার নামটি পরিচালনা করে অনুমান ও পরীক্ষার মাধ্যমে নির্ধারণ করা হয়েছিল।


আমার সমাধান ভাগ করে নেওয়ার জন্য পপিং। আমি উইন্ডোজ 10, ভিজ্যুয়াল স্টুডিও 2015, নুনিট 3.5, নুনিট টেস্ট অ্যাডাপ্টার 3.6 (নিউগেটের মাধ্যমে, ভিআইএসএক্স এক্সটেনশন নয়) এ ছিলাম এবং আমার কোনও পরীক্ষার সন্ধান করা হয়নি। আমার সমস্যাটি ছিল আমার সমাধানের টেস্ট প্রকল্পে, কোনওভাবে প্রজেক্ট ফোল্ডারের মধ্যে আমার "ডকুমেন্টস" ফোল্ডারের শর্টকাট তৈরি করা হয়েছিল। আমি অনুমান করছি টেস্ট অ্যাডাপ্টারটি শর্টকাটটি দেখছিল এবং এটি দিয়ে কী করা যায় তা বের করার চেষ্টা করছিল, ফলে ইউনিট পরীক্ষাগুলি প্রদর্শন করতে ব্যর্থ হয়েছিল to


আমারও একই সমস্যা ছিল। আমি প্রকল্পটি কেবল পরিষ্কার এবং পুনর্নির্মাণ করেছি এবং আমি যে পরীক্ষাগুলি অনুপস্থিত ছিল তা দেখতে সক্ষম হয়েছি।


আমি কেবল এটি যুক্ত করতে চাই যে আমি উপরেরগুলিতে সম্পূর্ণ ভিন্ন সমাধান পেয়েছি।

আমি আমার পরীক্ষার ক্লাসটি নীচের হিসাবে ঘোষণা করেছিলাম:

[TestClass]
class ClassificationTests
{
   //unit tests
}

ক্লাসে আমি public মডিফায়ার যুক্ত করার সাথে সাথে এটি আশানুরূপভাবে কাজ করেছে!


আমি ভিএসটিস্ট ফ্রেমওয়ার্ক এবং আমার নেটিভ ইউনিট পরীক্ষার জন্য একই সমস্যার সাথে লড়াই করছিলাম।

সুতরাং, আপনি পূর্বে উল্লিখিত সমস্ত জিনিসগুলি করার পরে, আমি আমার সমাধানের ডিরেক্টরি পথে '#' চিহ্নের প্রতিটি ঘটনা সরিয়ে ফেলেছি। এটা আসলে কাজ করে।

আমি গুগলদের জন্য এখানে রেখে দিচ্ছি যারা ভবিষ্যতে এই প্রশ্নটি খুঁজে পাবে।


এই বিষয়টি কিছুটা পুরানো, তবে ভিএস ২০১৫-তে আমার অনুপস্থিত টেস্টের স্থিতির সমাধান:

টাস্ক-স্ট্যাটাসটি কেবলমাত্র ডিবাগ বিল্ড কনফিগারেশনে প্রদর্শিত হয়। অবশ্যই এটি পরীক্ষা-এক্সপ্লোরারের মাধ্যমে আপনার পরীক্ষাটি ডিবাগ করাও অসম্ভব করে তোলে।


এই সমস্যার অন্যতম কারণ হ'ল আপনার পরীক্ষার শ্রেণি সর্বজনীন নয়। এমএসটিস্ট শুধুমাত্র পাবলিক ক্লাস থেকে পরীক্ষা আবিষ্কার করে।


এটি সম্ভবত বেশিরভাগ লোককে সহায়তা করবে না, তবে ইউনিট পরীক্ষায় অনভিজ্ঞ কেউ এমন একটি পরীক্ষা পদ্ধতি লিখেছিলেন যা void পরিবর্তে bool ফেরত:

[TestMethod]
public bool TestSomething()

রিটার্নের ধরনটি void করে দেওয়া সমস্যার সমাধান করে।


এটি হতে পারে যে আপনার কোডগুলি x64 এর সাথে সংকলিত হয়েছে সুতরাং ডিফল্ট প্রসেসর আর্কিটেকচারকে এক্স 64 হিসাবে সক্ষম করতে হবে।

Test > Test Settings > Default Processor Architecture > X64

কোনওভাবেই আমার প্রকল্পটি স্ট্যাটিক লাইব্রেরি (.lib) হিসাবে সংকলন করার জন্য সেট করা হয়েছিল। এটি একটি ডায়নামিক লাইব্রেরি (.dll) এ পরিবর্তন করার পরে, ভিজ্যুয়াল স্টুডিও 2012 দ্বারা সঠিকভাবে আবিষ্কার করা পরীক্ষাগুলি।

My Unit Test Project ->
Properties ->
Configuration Properties ->
General ->
Configuration Type

নুগেট প্যাকেজ ম্যানেজারে যান এবং নিম্নলিখিত হিসাবে নুনিট অ্যাডাপ্টার ডাউনলোড করুন।


ভিজ্যুয়াল স্টুডিও 2015-এ (আপডেট 3) আপনি যদি পরীক্ষা এক্সপ্লোরারগুলিতে পরীক্ষাগুলি সংযুক্ত করতে চান তবে NUnit টেস্ট অ্যাডাপ্টার ইনস্টল করতে হবে Tools সরঞ্জাম-> এক্সটেনশন এবং আপডেটগুলি-> অনলাইন ট্যাব থেকে অ্যাডাপ্টারটি ডাউনলোড করুন (আপনাকে অ্যাডাপ্টারের জন্য অনুসন্ধান করতে হবে) ) -> ডাউনলোড করুন । ভিজ্যুয়াল স্টুডিওটি পুনরায় চালু করে আপনি পরীক্ষার কাঠামোর পরিবর্তন দেখতে পারবেন।


যদি আপনি .NET স্ট্যান্ডার্ড বা .NET কোর লক্ষ্য করে থাকেন তবে আপনাকে NUnit টেস্ট অ্যাডাপ্টারের জন্য নয়গেট প্যাকেজটি ব্যবহার করতে হবে, এক্সটেনশনটি নয়

আপনি যদি নেট নেট বা .NET স্ট্যান্ডার্ড প্রকল্প পরীক্ষা করে থাকেন তবে নুগেট থেকে অ্যাডাপ্টার ইনস্টল করার পরামর্শ দেওয়া হচ্ছে। ভিএসআইএক্স অ্যাডাপ্টার .NET কোর সমর্থন করে না এবং করবে না, কারণ ভিএসআইএক্স প্যাকেজগুলি একাধিক প্ল্যাটফর্মকে লক্ষ্য করতে পারে না।

সূত্র: github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard

এছাড়াও জিজ্ঞাসিত প্রশ্নাবলী এখানে দেখুন:

আমার পরীক্ষাগুলি ভিজ্যুয়াল স্টুডিও 2017 এ প্রদর্শিত হচ্ছে না?

  • আপনি কি নিউগেট প্যাকেজটি ব্যবহার করছেন?
  • আপনি কি 3.8.0 সংস্করণ বা নিউগেট প্যাকেজটির নতুন ব্যবহার করছেন?
  • আপনার পরীক্ষাগুলি। নেট কোর বা পূর্ণ। নেট ফ্রেমওয়ার্ককে লক্ষ্য করে? (উপরে দেখুন)
  • আপনি কি Microsoft.NET.Test.Sdk এ একটি প্যাকেজ রেফারেন্স যুক্ত করেছেন?
  • আপনি কি ভিজ্যুয়াল স্টুডিও পুনরায় চালু করেছেন? এটি এখনও কিছুটা মেজাজী।

সূত্র: github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard





test-runner