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




unit-testing visual-studio-2017 (20)

এটি ইনস্টল করার পর থেকে আমি ভিএস 2017 এর সাথে লড়াই করছি। এখন মনে হচ্ছে ইউনিট টেস্টগুলি কেবল কমান্ড লাইন "ডটনেট পরীক্ষা" থেকে চলবে।

আমার প্রকল্পটি। নেট কোর 1.1.1। আমি এসডিকে এবং 1.1.1 এর ফ্রেমওয়ার্ক আপডেট ইনস্টল করেছি।

আমি এমএসডিএন ( https://msdn.microsoft.com/en-us/library/ms182532.aspx ) এ নমুনাটি চেষ্টা করেছি যা ঠিক একইভাবে ব্যর্থ হয়।

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

কেউ কি ভিএস 2017 তে ইউনিট টেস্টগুলি অর্জন করতে পেরেছে, তা যদি হয় কীভাবে?

ধন্যবাদ, জন

আপডেট - প্রসারিত করুন

এখানে একটি সাধারণ পরীক্ষা প্রকল্পের একটি উদাহরণ যা GitHub কাজ করছে না। এটি xUnit সহ একটি উদাহরণ তবে আমি এমএস পরীক্ষায় নির্মিত নুনিট এবং ভিজ্যুয়াল স্টুডিওর চেষ্টা করেছি। আমি যা পরীক্ষা করে থাকি বা কী পরিবর্তন করি তা বিবেচনা করেই আমি কোনও পরীক্ষার জন্য ভিএস পরীক্ষার রানারকে পেতে পারি না cannot

আমি কি চেষ্টা করেছি

  • ভিএস পরীক্ষা ক্যাশে ফাইলগুলি মোছা হচ্ছে DEL %TEMP%\VisualStudioTestExplorerExtensions
  • ভিএস পুনরায় চালু করা হচ্ছে
  • পরীক্ষা এক্সপ্লোরার বন্ধ / খোলার
  • এক্স ইউনাইট ইনস্টল Microsoft.DotNet.InternalAbstractions অ্যাবস্ট্রাকশনের জন্য ( এসও পোস্ট দেখুন )
  • NUnit- এর জন্য অ্যাডাপ্টার ইনস্টল করা এবং NUnit প্যাকেজ হিসাবে একই সংস্করণ (3) নিশ্চিত করুন
  • test -> test settings -> default processor architecture x86 এ সেট করা আছে

প্রশ্নটি
যে কেউ দয়া করে ভিএস ২০১7 (.csproj প্রকল্প ফাইল) এর নেট কোর 1.1.0 সমাধানের কার্যকারী উদাহরণ সরবরাহ করতে পারেন যেখানে ভিএস পরীক্ষার এক্সপ্লোরার সাফল্যের সাথে ইউনিট পরীক্ষাগুলি খুঁজে পান বা প্রদত্ত উদাহরণটিতে আমাকে সমস্যাটি দেখান।


আবিষ্কার

উপরের শীর্ষস্থানীয় উত্তরগুলি আমার পক্ষে কার্যকর হয়নি (পুনরায় চালু করা, সংস্করণ 1.1.18 এ আপডেট করা ... আমি ইতিমধ্যে আপডেট হয়েছি, টেম্প ফাইলগুলি মোছা করে, নুগেট ক্যাশে ইত্যাদি পরিষ্কার করেছিলাম)।

আমি যা আবিষ্কার করেছি তা হ'ল আমার বিভিন্ন পরীক্ষার প্রকল্পে MSTest.TestAdapter এবং MSTest.Framework এর জন্য পৃথক উল্লেখ রয়েছে (আমার সমাধান দুটি আছে)। একজনকে ১.১.১৮ এর মতো নির্দেশ করা হয়েছিল ...

packages.config

<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" />
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" />

... তবে অন্যটির 1.1.11 এর উল্লেখ রয়েছে। উপরের কয়েকটি উত্তর যখন এই ভিজ্যুয়াল স্টুডিওটি পুনরায় চালু করার পরে লাইব্রেরির দুটি সংস্করণ আমার টেম্প ডিরেক্টরিতে (% TEMP% ual ভিজ্যুয়াল স্টুডিওটস্টে এক্সপ্লোরার এক্সটেনশানস) প্রদর্শিত হয়েছিল তখন এই আবিষ্কারের দিকে নিয়ে যায়।

সমাধান

1.1.18 সংস্করণে কেবলমাত্র আমার প্যাকেজগুলি কনফিগ আপডেট করা হ'ল ভিএস-তে আমার ইউনিট পরীক্ষার কার্যকারিতা পুনরুদ্ধার করে what এটি প্রদর্শিত হচ্ছে যে কিছু বাগ রয়েছে যা MSTest লাইব্রেরিগুলির পাশাপাশি পাশাপাশি উল্লেখগুলি মঞ্জুরি দেয় না। আশা করি এটি আপনাকে সহায়তা করবে।

অধিক তথ্য:

  • ভিজ্যুয়াল স্টুডিও 2017 এন্টি: 15.5.6 (আমি এই সমস্যাটি সমাধানের আশা নিয়ে 15.0.1 থেকে আপডেট করেছি, তবে উভয় ক্ষেত্রেই আমার এটি ছিল)

সমস্যাটি

সমস্যাটি হ'ল ভিজ্যুয়াল স্টুডিওটি মেশিনের ডটনেট কোর সংস্করণগুলির চেয়ে 'বিভ্রান্ত' হচ্ছে। আমি যখন প্যানেলটি নিয়ন্ত্রণ করতে যাই -> প্রোগ্রামগুলি আনইনস্টল করতাম তখন আমার কাছে 8 টি বিভিন্ন ডটনেট কোর এসডিকে এবং রানটাইম ইনস্টল ছিল। এটি কোনওভাবে পরীক্ষার সন্ধান করার সময় ভিএসকে নীরবে ত্রুটি ঘটায়।

সমস্যাটি বৈধ করুন ate

আপনি কমান্ড লাইনে গিয়ে এবং ডটনেটের সংস্করণটি আপনার $ dotnet --version দ্বারা সমস্যাটি যাচাই করতে পারেন। আপনি ইনস্টল করা সর্বশেষতম সংস্করণ বাদে যদি কিছু দেখতে পান তবে আপনার মেশিনে কিছু মিল নেই এবং সঠিক সংস্করণটি ব্যবহার করছে না। উদাহরণ ... আপনার যদি ডটনেট কোর 1.0.1 ইনস্টল থাকে তবে আপনি যখন কমান্ড প্রম্পটে সংস্করণ পাবেন এবং এটি 1.0.0 বলে একটি সমস্যা 1.0.0

সমাধান

পুরানো সমস্ত জিনিস মুছুন। আমি কেবল যা শুরু করেছিলাম তা দিয়েই আমি শুরু করেছি (পুরানো ডটনেট আরসি সংস্করণ) তবে সমস্যাটি পরীক্ষার সময় এটি এখনও ভুল সংস্করণ দিয়েছে। অবশেষে আমি একটি সম্পূর্ণ পরিষ্কার করতে সম্মত। আমি ...

  • সমস্ত ভিজ্যুয়াল স্টুডিও অ্যাপ্লিকেশন আনইনস্টল করা হয়েছে (আমার মেশিনে ভিএস ২০১৫ এবং ভিএস ২০১7)
  • ডটনেট কোরের সমস্ত সংস্করণ আনইনস্টল করা (এমনকি সাম্প্রতিকতম)

আমার মেশিনটি সমস্ত ভিএস এবং ডোনেটের সম্পূর্ণরূপে খালি থাকার পরে আমি কেবল ভিএস2017 ইনস্টল করেছি (এটি সর্বশেষ ডটনেটের সাথে প্যাকেজযুক্ত আসে)। আমি একটি xUnit পরীক্ষা প্রকল্প তৈরি করেছি এবং পরীক্ষার এক্সপ্লোরার পরীক্ষাটি তত্ক্ষণাত্ সলভডের সন্ধান করে

এটি ওভারকিলের মতো মনে হতে পারে তবে আমি এটিকে অন্য উপায়ে ঠিক করার চেষ্টা করে দু'সপ্তাহ কাটিয়েছি। আপনার সমস্যাটি যদি কেবল এটি করে তবে আপনার আইটেমগুলি আনইনস্টল / পুনরায় ইনস্টল করতে কয়েক ঘন্টা সময় নিতে পারে এটি সম্ভবত আপনার সময় সাশ্রয় করবে।

তথ্যসূত্র


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


আমার ইউনিট টেস্টটি সন্ধান করতে আমার ভিএস 2017 নিয়ে সমস্যা হয়েছিল। জন ঠিক জিজ্ঞাসা করছিলেন এমন সমস্যা ছিল না - তবে গুগলে এটিই প্রথম ফলাফল যা আমি সন্ধান করতে এসেছি তাই আমি আমার সমস্যাটি ভাগ করে নিতে চাই।

আমার একটি উত্তরাধিকার সমাধান ভিএস ২০১০, ভিএস ২০১৩, ভিএস ২০১৫ পেরিয়ে ফিরে আসছে had এখন ভিএস ২০১7 এ মনে হচ্ছে [TestMethod] বৈশিষ্ট্যের জন্য নাম স্থানগুলি পরিবর্তিত হয়েছে।

এটি ব্যবহার করার আগে

Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0

আমি প্রকল্পে একটি নতুন Test.dll তৈরি করেছি এবং এটি একটি ডিফল্টরূপে ব্যবহৃত হয়েছে

Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0

সুতরাং আমার সমাধানটি ছিল ভিএস ২০১7 এর মধ্যে থেকে একটি নতুন ইউনিটস্টেস্ট প্রকল্প তৈরি করা। পুরানো পরীক্ষা প্রকল্পের জন্য সমাবেশের রেফারেন্সগুলিও কাজ করতে পারে। নতুন রেফারেন্সের সাথে VS2017 সেই ইউনিট পরীক্ষাগুলি আবিষ্কার করেছে।


আমার ক্ষেত্রে উপরের কোনটিই আমাকে সাহায্য করে না। তবে, আমি নুনিট 3 টেস্টএডাপ্টারটি 3.8.0 সংস্করণে ডাউনগ্রেড করেছি, তারপরে সর্বশেষে উন্নীত করুন (3.10.0)


আমার ক্ষেত্রে এটি একটি প্রকল্প যা আমি পূর্ববর্তী। নেট সংস্করণ থেকে পরীক্ষার প্রকল্পটি আপগ্রেড করেছি। অ্যাপকনফাইগ-এ আমার নির্ভরশীল অ্যাসেম্বলির পূর্ববর্তী সংস্করণগুলির সাথে এসেম্বলবাইন্ডিং ছিল।

App.config এ এসেমব্লিনাইন্ডিংগুলি ঠিক করার পরে, আমার পরীক্ষাগুলি আবিষ্কার হয়ে গেছে।


আমার ক্ষেত্রে, এটি ইউডাব্লুপি প্রকল্পটি সমস্যার কারণ সমাধানে উপস্থিত ছিল।

আমি যখন ইউডাব্লুপি প্রকল্পটি লোড করেছি তখন পরীক্ষাগুলি আবিষ্কার হয়েছিল। আমি যখন এটি আবার লোড করি, আবার অদৃশ্য হয়ে পরীক্ষা করুন।

সমস্ত প্রকল্প আনলোড করার চেষ্টা করুন এবং কেবল পরীক্ষার প্রকল্প রাখুন। দশটি পুনর্নির্মাণ সমাধান এবং পরীক্ষার শব্দটি টেস্ট রানারে উপস্থিত হয়। প্রকল্পগুলি একে একে লোড করুন এবং প্রতিটি প্রকল্পটি কী কারণে সমস্যা সৃষ্টি করছে তা সন্ধানের জন্য পুনরায় সমাধান পুনঃনির্মাণ করুন

নমুনা রেপো

ভিএস বাগ রিপোর্ট


আমার ক্ষেত্রে, এটি প্রমাণিত হয়েছে যে আমাকে কেবল আমার পরীক্ষা অ্যাডাপ্টার এবং পরীক্ষার কাঠামোটি আপগ্রেড করতে হয়েছিল। সম্পন্ন.

নিউগেট প্যাকেজ ম্যানেজার ব্যবহারের উদাহরণ:


আমার জন্য একটি নতুন পরীক্ষা প্রকল্প তৈরি করা সহজ ছিল যা ভিজ্যুয়াল স্টুডিও 2017 এর সাথে পুরোপুরি সূক্ষ্মভাবে কাজ করে ... এবং পরীক্ষার ফাইলগুলি অনুলিপি করুন, রেফারেন্স যুক্ত করুন এবং প্রয়োজন অনুসারে নিউগেট প্যাকেজগুলি।


আমার জন্য, পরীক্ষার প্রকল্পের .csproj ফাইল থেকে .csproj পরিবর্তন করা

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

থেকে

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

কাজ করছে.


আমারও একই সমস্যা ছিল এবং এটি নিম্নলিখিত কাজগুলি করে কাজ করতে পেলাম ..:

  • প্রথমে সমস্ত উন্মুক্ত ভিজ্যুয়াল স্টুডিও দৃষ্টান্ত বন্ধ করুন এবং এই ফোল্ডারটি মুছুন:% TEMP% \ ভিজ্যুয়াল স্টুডিওটেষ্ট এক্সপ্লোরার এক্সটেনশনস (( ভিজ্যুয়াল স্টুডিওতে পরীক্ষা চালানো )
  • আপনার নুগেট প্যাকেজ ম্যানেজারে যান এবং প্রথমে মাইক্রোসফট.এনইটি.টেষ্ট.এসডিকি (15.3.0-প্রাকদর্শন-20170425-07) ইনস্টল করুন এবং তারপরে xunit.runner.visualstudio (2.3.0-beta1-build1309) ইনস্টল করুন। আমার পরীক্ষাগুলি সনাক্ত করতে সর্বশেষতম ভিএস 2017 পেতে আমাকে যে সমস্ত প্যাকেজ ইনস্টল করতে হয়েছিল তা সংযুক্ত নুগেট স্ক্রিনশটটি দেখুন।

আমি জানি যে ওপি তার চেকলিস্টে এটি তালিকাভুক্ত করেছে, তবে ভিজ্যুয়াল স্টুডিও 2017 এর ক্লিন ইনস্টল করার সময় এবং নতুন প্রকল্প স্থাপনের সময় সেই বিষয়টিকে উপেক্ষা করা সহজ। নুনিট প্রজেক্ট টেমপ্লেট এবং নুনিট ফ্রেমওয়ার্ক ছাড়াও আলাদাভাবে NUnit অ্যাডাপ্টার ইনস্টল করা দরকার, যেমন Install-Package NUnit3TestAdapter -Version 3.9.0 কমান্ড Install-Package NUnit3TestAdapter -Version 3.9.0 । এর পরে ভিজ্যুয়াল স্টুডিও সম্প্রদায় 2017 কোনও সমস্যা ছাড়াই ইউনিট পরীক্ষাগুলি আবিষ্কার করা শুরু করে।


আমি সবকিছু চেষ্টা করেছি কিন্তু কিছুই সাহায্য করেনি। আমার ক্ষেত্রে বেশ কয়েকটি পরীক্ষামূলক প্রকল্পের সাথে আমার একটি সমাধান ছিল এবং তাদের মধ্যে কিছু পুরানো এমএস-পরীক্ষার কাঠামো ব্যবহার করছিল যাতে ভিজ্যুয়াল স্টুডিও কেবল সেগুলি খুঁজে পেয়েছিল।

আমি সমস্ত পরীক্ষার প্রকল্পগুলির জন্য পরীক্ষার কাঠামো প্যাকেজগুলি ইনস্টল করেছি যেমন গৃহীত উত্তরে দেখানো হয়েছে। তারপরে পুরানো মানের-সরঞ্জামগুলির রেফারেন্সগুলি সরিয়ে, ভিজ্যুয়াল স্টুডিওটি পুনরায় আরম্ভ করুন এবং এখন আমি সমস্ত পরীক্ষা দেখতে পাচ্ছি।


এটি কেবল আমার জন্য কাজ করেছে (জানি না এটি ওয়ার্কস্পেসগুলি পরিবর্তিত করে যা কোনও কিছুকে দূষিত করেছে):

% TEMP% \ ভিজ্যুয়াল স্টুডিওটেষ্টএক্সপ্লোরার এক্সটেনশনে VS পরীক্ষা ক্যাশে ফাইলগুলি মোছা হচ্ছে এবং VS2017 পুনরায় চালু করুন।


কখনও কখনও পরীক্ষাগুলির নাম স্থান পরিবর্তন করে। আমার ফোল্ডারের কাঠামো নিম্নরূপ ছিল:

A |___B | |___D |___C___E

নেমস্পেসটি টেস্টের মতো সমতল ছিল <<নাম> এবং তারা পরীক্ষার উইন্ডোতে প্রদর্শিত হয়নি। যখন আমি নামের স্থানটি ডিরেক্টরিটির কাঠামোর কাঠামোর পরিবর্তিত করলাম তখন সমস্ত পরীক্ষার দেখাবে। এখন আমি চাইলে অন্য যে কোনও নেমস্পেস কাঠামোতে ফিরে যেতে পারি।

আপনার প্রকল্পটি তৈরি করতে ভুলবেন না!


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

এই ক্ষেত্রে, আপনাকে খুঁজে বের করতে হবে যে কোন মামলাটি স্ট্যাকওভারফ্লো ব্যতিক্রম ঘটায়।


নিশ্চিত হয়ে নিন যে আপনি সঠিক মাইক্রোসফ্ট. নেট.টেষ্ট.এসডিকে ব্যবহার করছেন:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />

প্রাক-প্রকাশের একটি ব্যবহার করবেন না। অথবা আপনাকে কনসোল অ্যাপে পরিবর্তন করতে হবে (গ্রন্থাগার নয়)। আমার অনুরূপ সমস্যা আছে তবে সর্বশেষ প্রকাশের (15.0.0) দিয়ে এটি আবার কাজ শুরু করে।

এছাড়াও, আপনি যোগ করতে হতে পারে:

  <ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
  </ItemGroup>

তবে আমি মনে করি না এটি nessesary।


পুরানো .dll অপসারণ সাহায্য করবে। সিটিতে% TEMP% ডিরেক্টরিতে অবস্থিত টেম্প ফাইলগুলি সাফ করা হচ্ছে: \ ব্যবহারকারীরা (আপনার ব্যবহারকারী নাম) \ অ্যাপডাটা \ স্থানীয় \ টেম্প


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

আমার পরীক্ষার ক্লাসটি সার্বজনীন হয়নি! এটি সর্বজনীন করে দেওয়ার ফলে ভিএসকে পরীক্ষাগুলি আবিষ্কার করার অনুমতি দেওয়া হয়েছিল।


সমাধানটি আমার ইউনিট পরীক্ষা প্রকল্প থেকে আমার app.config ফাইলটি app.config । পরীক্ষাগুলি আবার হাজির হবে!

এই ফাইলটি বাইন্ডেন্ডারডায়ারেক্টে কিছু dll এর উল্লেখ করেছে যা প্রকৃতপক্ষে প্রকল্পের উল্লেখগুলিতে উপস্থিত ছিল না। আপনার প্রকল্পের জন্য কঠোরভাবে প্রয়োজনীয় সমাবেশ সভাগুলি পুনরায় যুক্ত করুন।





visual-studio-2017