রান ফোল্ডারটি পরীক্ষা করতে MSTest অনুলিপি ফাইল


108

আমি একটি পরীক্ষা পেয়েছি যার জন্য একটি এক্সএমএল ফাইল পড়তে হবে এবং তারপরে পার্স করতে হবে। আমি কীভাবে এই ফাইলটি প্রতিবার পরীক্ষার রান ফোল্ডারে অনুলিপি করতে পারি?

এক্সএমএল ফাইলটি "নতুন হলে অনুলিপি করুন" এবং "কিছুই নয়" এর একটি সংকলন মোডে সেট করা আছে (যেহেতু এটি সত্যই কোনও সংকলন-সক্ষম জিনিস নয়)

উত্তর:


131

একটি বৈশিষ্ট্য ব্যবহার করুনDeploymentItem

using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CarMaker;

namespace DeploymentTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod()]
        [DeploymentItem("testFile1.xml")]
        public void ConstructorTest()
        {
            string file = "testFile1.xml";
            Assert.IsTrue(File.Exists(file), "deployment failed: " + file +
                " did not get deployed");
        }
    }
}

17
ক্লাসের প্রতিটি পরীক্ষার উপর প্রভাব ফেলতে ডিপ্লোয়মেন্টআইটেম বৈশিষ্ট্যটি শ্রেণি পর্যায়েও নির্দিষ্ট করা যেতে পারে।
হ্যানস নেল

24
ভুলে যাবেন না যে যদি আপনার সাবফোল্ডারে আপনার আইটেমগুলিও অন্তর্ভুক্ত করা হয় তবে এটি ডিপ্লোয়মেন্ট সাব-ডাইরেক্টরিতে [ডিপ্লোয়মেন্টআইটেম ("সাবফোল্ডার \ টেস্টফিল 1.xML", "সাবফোল্ডার")] অন্তর্ভুক্ত করুন
ওমগটিটিব

31
থমাসের মন্তব্যে আরও, রিলেটিভপথরূটের ডিফল্ট মান হ'ল সলিউশন ফোল্ডার, সুতরাং আপনার সমাধানটি যদি এর মতো দেখায় (.. \ সলিউশনফোল্ডার P টেস্টপ্রোজেট \ টেস্টডাটা \ aFile.txt) আপনার ডিপ্লোয়মেন্টআইটেমটি এর মতো দেখতে পাবেন ( "টেস্টপ্রজেক্ট \ টেস্টডাটা \ aFile.txt", "টেস্টডাটা")])) .. এবং আপনি পরীক্ষায় ফাইলটি রেফারেন্স করবেন এটি ব্যবহার করে .. (স্ট্রিং ফাইল = @ "টেস্টডাটা F aFile.txt";)
মাইকেল দৌসমান

6
ভিএস 2010 এর জন্য ডিপ্লোয়মেন্টআইটিমেট্রিবিউট ডকুমেন্টেশন : এই বৈশিষ্ট্যটি পরীক্ষা পদ্ধতিতে বা পরীক্ষার শ্রেণিতে নির্দিষ্ট করা যেতে পারে।
অ্যালেক্স চ

12
আমি বেশিরভাগ পোস্টগুলির মধ্যে যা দেখেছি যা উল্লেখ করতে ব্যর্থ হয়েছে তা হ'ল আপনি যদি এটি কাজ করে না পান তবে আপনার সম্ভবত সম্ভবত "ডিপ্লোয়মেন্ট সক্ষম করুন" চেকবাক্স যাচাই করা দরকার যা আপনি পরীক্ষায় যেতে পারেন -> টেস্ট সেটিংস সম্পাদনা করুন -> স্থানীয় (স্থানীয়.স্টেটসেটিংস) -> স্থাপনা ট্যাব। আমি সবেমাত্র এটি করেছি এবং তারপরে ডিপ্লোয়মেন্টআইটেমটি ভাল কাজ করেছে।
ডেভ

26

দেখে মনে হচ্ছে আপনি যদি সলিউশনের জন্য কোনও টেস্টসেটিং ফাইল সরবরাহ করেন তবে আপনি "ডিপ্লোয়মেন্ট সক্ষম করুন" বিকল্পটি চেক করতে পারেন এবং যে কোনও ...TestResults\...\outফোল্ডারটি যেখানে আপনার অতিরিক্ত ফাইলগুলি অনুলিপি করে না সেখান থেকে চালানোর চেষ্টা করা থেকে এমএসএস্টকে থামাতে পারবেন (যদি না আপনি তাদের স্থাপনার বিকল্প না করেন) ।

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

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

ভিসুয়াল স্টুডিও একটি TestSettings ফাইল তৈরি, ডান-এ ক্লিক করুন সলিউশন এবং নিউ আইটেম চয়ন করুন এবং TestSettings টেমপ্লেট নির্বাচন করুন। এমএসেস্ট.এক্সই-এর কমান্ড প্রম্পটে টেস্টসেটিং ফাইলটি ব্যবহার করতে বিকল্পটি যুক্ত করুন, /testsettings:C:\Src\mySolution\myProject\local.testsettings (বা উপযুক্ত পাথের সাথে টিমসিটিতে অতিরিক্ত কমান্ড লাইন বিকল্প হিসাবে যুক্ত করুন)


8

প্রীত উত্তরটি একক পরীক্ষার জন্য আইটেম মোতায়েন করতে ব্যবহৃত হয়। আপনি যদি সমাধানের স্তরে এটি করতে চান তবে .testrunconfig সেটিংসটি ব্যবহার করুন ।



3

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

প্রথমে একটি টেস্টেটেটিং ফাইল তৈরি করুন এবং আপনার প্রয়োজনীয় ডিপ্লোমেন্ট আইটেমগুলি যুক্ত করুন (ফাইল বা ফোল্ডারের নাম):

<TestSettings name="Local" id="00ebe0c6-7b64-49c0-80a5-09796270f111" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Description>These are default test settings for a local test run.</Description>
  <Deployment>
    <DeploymentItem filename="Folder1\TestScripts\test.xml" outputDirectory="TestScripts"/>
    <DeploymentItem filename="Folder2\TestData\" outputDirectory="TestData"/>
  </Deployment>
<...../>
  • ভিজ্যুয়াল স্টুডিওতে চলছে, নতুন টেস্টসেটেটিংগুলি নির্বাচন করতে "টেস্ট \ টেস্ট সেটিংস" মেনু থেকে "টেস্ট সেটিংস ফাইল নির্বাচন করুন" ব্যবহার করুন

  • এমস্টেস্ট চলমান, আপনার টেস্টসেটিংয়ের এমস্টেস্ট ব্যবহার করতে / টেস্টসেটিং প্যারামিটারটি ব্যবহার করুন।


2

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

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

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


2

ভিজ্যুয়াল স্টুডিও ২০১২-এ, vstest.console.exe (বিল্ট-ইন টেস্ট রানার) বর্তমান পথ হিসাবে আউটপুট দির সাথে চলে। এর অর্থ হল যে আপনার সমাধানগুলিতে কেবল আপনার আইটেমগুলিকে 'সর্বদা অনুলিপি করুন' বা 'নতুন করে অনুলিপি করুন' সম্পত্তিটি আপনার পরীক্ষার দ্বারা ব্যবহারের জন্য অন্তর্ভুক্ত করা দরকার। সাধারণ ক্ষেত্রে আপনার জন্য ডিপ্লোয়মেন্টআইটেম অ্যাট্রিবিউট লাগবে না। আপনার আউটপুট / পরীক্ষা ডিরেক্টরিতে কমান্ড লাইন থেকে vstest.console.exe চালানোর সময় একই প্রয়োগ করা হয়।

কিছু ক্ষেত্রে রয়েছে যখন পৃথক ফোল্ডার ব্যবহার করা হয়, এর মধ্যে একটি হ'ল আপনি যখন ডিপোরিমেন্টআইটিম বৈশিষ্ট্যটি ব্যবহার করছেন তখন। আরও তথ্যের জন্য এখানে দেখুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.