বিল্ট-ইন ইউনিট টেস্টিং স্যুটটি সম্ভবত অনুমান করার জন্য ভিজ্যুয়াল স্টুডিও ২০০৮C++
-এ কীভাবে পরীক্ষামূলক কাঠামো সেট আপ করতে এবং ব্যবহারযোগ্য হবে তা জানার জন্য আমার সমস্যা হচ্ছে ।
যে কোনও লিঙ্ক বা টিউটোরিয়াল প্রশংসা করা হবে।
বিল্ট-ইন ইউনিট টেস্টিং স্যুটটি সম্ভবত অনুমান করার জন্য ভিজ্যুয়াল স্টুডিও ২০০৮C++
-এ কীভাবে পরীক্ষামূলক কাঠামো সেট আপ করতে এবং ব্যবহারযোগ্য হবে তা জানার জন্য আমার সমস্যা হচ্ছে ।
যে কোনও লিঙ্ক বা টিউটোরিয়াল প্রশংসা করা হবে।
উত্তর:
এই পৃষ্ঠাটি সাহায্য করতে পারে, এটি বেশ কয়েকটি সি ++ ইউনিট পরীক্ষার ফ্রেমওয়ার্কগুলি পর্যালোচনা করে:
সিপিপিউনাইটলাইট বা সিপিপিউনিটলাইট 2 পরীক্ষা করে দেখুন ।
সিপিপিউনাইটলাইটটি মাইকেল ফেদারস দ্বারা তৈরি করা হয়েছিল, যিনি মূলত জাভা জুনিটকে সি ++ তে সিপিপিউনিট হিসাবে পোর্ট করেছিলেন (সিপিপিউনিট জাওনিতের বিকাশের মডেলের নকল করার চেষ্টা করে - তবে সি ++ জাভাটির বৈশিষ্ট্যগুলির অভাব [উদাহরণস্বরূপ] এটি ব্যবহার করা সহজ করার জন্য)।
সিপিপিউনাইটলাইট জাভা সি সি ++ এ পোর্ট করে নয়, একটি সত্যিকারের সি ++ - স্টাইল পরীক্ষার কাঠামো তৈরি করার চেষ্টা করে। (আমি লেগ্যাসি কোড বইয়ের সাথে ফেদারের কার্যকারিতা থেকে প্যারাফ্রেসিং করছি )। আরও বৈশিষ্ট্য এবং বাগ ফিক্স সহ সিপিপিউনাইটলাইট 2 অন্য রাইটরাইট বলে মনে হচ্ছে।
আমি স্রেফ ইউনিট টেস্ট ++ জুড়ে হোঁচট খেয়েছি যার মধ্যে সিপিপিউনিটলাইট 2 এবং অন্যান্য কিছু কাঠামোর স্টাফ রয়েছে।
ভিজ্যুয়াল স্টুডিও ২০০৮ এর মধ্যে বিল্ট ইন টেস্টিং ফ্রেমওয়ার্কটি ব্যবহার করে নিয়ন্ত্রণহীন সি ++ পরীক্ষা করার একটি উপায় রয়েছে । আপনি যদি সি ++ / সিএলআই ব্যবহার করে কোনও সি ++ টেস্ট প্রকল্প তৈরি করেন তবে আপনি একটি পরিচালনা না করা ডিএলএলে কল করতে পারেন। আপনাকে কমন ল্যাঙ্গুয়েজ রানটাইম সমর্থনটি সাফ / ক্লার থেকে / ক্লার এ স্যুইচ করতে হবে: আপনি যদি পরিচালনা না করা সি ++ তে লেখা কোডটি পরীক্ষা করতে চান তবে নিরাপদ।
আমার ব্লগে এখানে ধাপে ধাপে বিশদ রয়েছে: http://msujaws.wordpress.com/2009/05/06/unit-testing-mfc-with-mstest/
মাইক্রোসফ্টে আইআইএস ইউআরএল পুনর্লিখনের মডিউলটি পরীক্ষা করতে আমি যে পদ্ধতির ব্যবহার করছি তা এখানে রয়েছে (এটি কমান্ড-লাইন ভিত্তিক, তবে ভিএস-এর পক্ষেও কাজ করা উচিত):
এখানে একটি উদাহরণ:
// Example
#include "stdafx.h"
#include "mstest.h"
// Following code is native code.
#pragma unmanaged
void AddTwoNumbersTest() {
// Arrange
Adder yourNativeObject;
int expected = 3;
int actual;
// Act
actual = yourNativeObject.Add(1, 2);
// Assert
Assert::AreEqual(expected, actual, L"1 + 2 != 3");
}
// Following code is C++/CLI (Managed)
#pragma managed
using namespace Microsoft::VisualStudio::TestTools::UnitTesting;
[TestClass]
public ref class TestShim {
public:
[TestMethod]
void AddTwoNumbersTest() {
// Just jump to C++ native code (above)
::AddTwoNumbersTest();
}
};
এই পদ্ধতির সাথে, লোকেরা খুব বেশি সি ++ / সিএলআই স্টাফ শিখতে হবে না, সমস্ত আসল পরীক্ষা সি ++ নেটিভ এ করা হবে এবং টেস্টশিম ক্লাসটি এমএসটিস্ট.এক্সে পরীক্ষা 'প্রকাশ' করতে ব্যবহৃত হবে (বা এটি দৃশ্যমান করে তুলবে) )।
নতুন পরীক্ষা যুক্ত করার জন্য আপনি কেবলমাত্র একটি নতুন [টেস্টমেথড] অকার্যকর নিউ টেস্ট () {:: নিউ টেস্ট ();} পদ্ধতি এবং একটি নতুন অকার্যকর নিউ টেস্ট () নেটিভ ফাংশন ঘোষণা করুন। কোনও ম্যাক্রোস নেই, কোন কৌশল নয়, সোজা for
এখন, হেড ফাইলটি বৈকল্পিকভাবে ব্যবহৃত হয়েছে, তবে এটি সি ++ নেটিভ স্বাক্ষর (উদাহরণস্বরূপ স্ট্র্যাং instead এর পরিবর্তে wchar_t *) সহ অ্যাসেট ক্লাসের পদ্ধতিগুলি প্রকাশ করতে ব্যবহার করা যেতে পারে, সুতরাং এটি আপনি সি ++ এবং সি ++ / সিএলআই থেকে দূরে রাখতে পারেন :
এখানে একটি উদাহরণ:
// Example
#pragma once
#pragma managed(push, on)
using namespace System;
class Assert {
public:
static void AreEqual(int expected, int actual) {
Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual(expected, actual);
}
static void AreEqual(int expected, int actual, PCWSTR pszMessage) {
Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual(expected, actual, gcnew String(pszMe
ssage));
}
template<typename T>
static void AreEqual(T expected, T actual) {
Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual(expected, actual);
}
// Etcetera, other overloads...
}
#pragma managed(pop)
এইচটিএইচ
ব্যক্তিগতভাবে, আমি উইনউনিতকে পছন্দ করি যেহেতু এটি আমার পরীক্ষাগুলি ব্যতীত আমার আর কিছু লেখার প্রয়োজন হয় না (আমি পরীক্ষা হিসাবে একটি .dll তৈরি করি, একটি এক্সাই নয়)। আমি কেবল একটি প্রকল্প তৈরি করি, এবং WinUnit.exe কে আমার পরীক্ষার আউটপুট ডিরেক্টরিতে দেখি এবং এটি যা কিছু আবিষ্কার করে তা চালায়। আপনি এখানে WinUnit প্রকল্পটি ডাউনলোড করতে পারেন । (এমএসডিএন এখন আপনার নিবন্ধটি নয়, পুরো বিষয়টি ডাউনলোড করার প্রয়োজন Win উইনউনিতটি এর মধ্যে অন্তর্ভুক্ত রয়েছে))
ফ্রেমওয়ার্ক VS9 সঙ্গে অন্তর্ভুক্ত করা হয় .NET, কিন্তু আপনি সি ++ / CLI মধ্যে টেস্ট লিখবেন, তাই যতদিন তুমি আরামদায়ক কিছু .NET isms শিক্ষা, আপনি সবচেয়ে কোনো সি ++ কোড পরীক্ষা করতে সক্ষম হওয়া উচিত পারবেন না।
বুস্ট.টেস্ট এবং গুগলতেস্ট দেখতে মোটামুটি একই রকম হতে পারে তবে কিছুটা ভিন্ন ব্যবহারের জন্য খাপ খাইয়ে নেওয়া হয়েছে । এগুলির উভয়েরই বাইনারি উপাদান রয়েছে, সুতরাং পরীক্ষাগুলি সংকলন করতে এবং পরিচালনা করতে আপনার সমাধানে একটি অতিরিক্ত প্রকল্পের প্রয়োজন।
আমরা যে কাঠামোটি ব্যবহার করি তা হ'ল সিএক্সএক্সস্টেস্ট , যা অনেক বেশি হালকা; এটি কেবলমাত্র শিরোনামই, এবং আপনার শিরোনাম থেকে টেস্ট স্যুট তথ্য স্ক্র্যাপ করতে পার্ল (!) স্ক্রিপ্ট ব্যবহার করে (স্যুটগুলি সিএক্সএক্সস্টেস্ট :: বেস থেকে প্রাপ্ত, আপনার সমস্ত পরীক্ষার পদ্ধতির নাম "পরীক্ষা" দিয়ে শুরু হয়) " স্পষ্টতই, এর জন্য আপনাকে এক উত্স বা অন্য কোনও থেকে পার্ল পাওয়া দরকার , যা আপনার বিল্ড এনভায়রনমেন্ট সেটআপে ওভারহেড যুক্ত করে।
আমি ইউনিট টেস্ট ++ ব্যবহার করি ।
যেহেতু আমি এই পোস্টটি তৈরি করেছি সেই বছরগুলিতে উত্স উত্স থেকে গিথুবে চলে গেছে to এছাড়াও উদাহরণ টিউটোরিয়াল এখন আরো অজ্ঞেয়বাদী হয় - এ সব সেট আপ কোনো কনফিগারেশন বা প্রকল্প ঢোকা না।
আমি সন্দেহ করি এটি এখনও ভিজ্যুয়াল স্টুডিও 6 এর জন্য কাজ করবে কারণ প্রকল্পের ফাইলগুলি এখন সিএমকেকের মাধ্যমে তৈরি করা হয়েছে। আপনার যদি এখনও পুরানো সংস্করণ সমর্থনের প্রয়োজন হয় তবে আপনি সোর্সফোর্স শাখার অধীনে সর্বশেষ উপলভ্য সংস্করণটি পেতে পারেন ।
এখানে যে সরঞ্জামগুলি উল্লেখ করা হয়েছে সেগুলি হ'ল সমস্ত কমান্ড-লাইন সরঞ্জাম। আপনি যদি আরও সমন্বিত সমাধানের সন্ধান করেন তবে সিএফিক্স স্টুডিওতে একবার দেখুন , যা সি / সি ++ ইউনিট পরীক্ষার জন্য একটি ভিজ্যুয়াল স্টুডিও অ্যাডআইএন। এটি টেস্টড্রাইভন.নেটের সাথে বেশ মিল, তবে।
আমি ভিএস ২০০৮ সম্পর্কে ১০০% নিশ্চিত নই, তবে আমি জানি যে মাইক্রোসফ্টরা তাদের টিম স্যুটটির অংশ হিসাবে ভিএস ২০০৫ এ প্রেরণ করেছে যে ইউনিট টেস্টিং কাঠামোটি কেবল নেট নেট, সি ++ এর জন্য নয়
আমি সিপিউউনিতও ব্যবহার করেছি এবং তা ঠিক আছে। NUnit / JUnit / ইত্যাদির মতো অনেকগুলি।
আপনি যদি বুস্ট ব্যবহার করেন তবে তাদের একটি ইউনিট পরীক্ষার গ্রন্থাগারও রয়েছে
উত্সাহের পেছনের ছেলেরা কিছু মারাত্মক কোডিং চপস রয়েছে, তাই আমি বলব যে তাদের কাঠামোটি বেশ ভাল হওয়া উচিত, তবে এটি সম্ভবত সবচেয়ে বন্ধুত্বপূর্ণ নাও হতে পারে :-)
ভিজ্যুয়াল স্টুডিও ২০০৮ এর ইউনিট পরীক্ষক কেবলমাত্র নেট নেটওয়ার্কের জন্য যতটা আমি জানি is
আমি ভিজ্যুয়াল স্টুডিও 2005 এ সিপ্পুনিট ব্যবহার করেছি এবং এটি বেশ ভাল বলে খুঁজে পেয়েছি।
যতদূর আমার মনে আছে সেটআপটি তুলনামূলকভাবে বেদাহীন ছিল। কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনার পরীক্ষামূলক প্রকল্পগুলিতে লিঙ্কার (লিংকার → ইনপুট → অতিরিক্ত নির্ভরতা) cppunitd.lib অন্তর্ভুক্ত রয়েছে।
তারপরে, #include <cppunit/extensions/HelperMacros.h>
আপনার শিরোনামে।
তারপরে আপনি নিজের পরীক্ষার ক্লাসটি কাজ করতে http://cppunit.sourceforge.net/doc/1.11.6/cppunit_cookbook.html এ ধাপগুলি অনুসরণ করতে পারেন ।
আমি ভিজ্যুয়াল স্টুডিও সহ উইন্ডোজ পরিবেশে একটি পরিচালনাহীন সি ++ অ্যাপ্লিকেশনটির জন্য ইউনিট পরীক্ষার প্রয়োগ করতে ভুগছিলাম। সুতরাং আমি পরিচালনা করতে পেরেছি এবং ব্যবস্থাপনাহীন সি ++ অ্যাপ্লিকেশন ইউনিট পরীক্ষার জন্য ধাপে ধাপে গাইড হিসাবে একটি পোস্ট লিখেছি। আমি আশা করি এটি আপনাকে সাহায্য করতে পারে।
ভিজ্যুয়াল স্টুডিওতে নিয়ন্ত্রণহীন সি ++ এর জন্য ইউনিট পরীক্ষা