কিভাবে ভিসুয়াল স্টুডিও C ++ জন্য ইউনিট পরীক্ষার সেট আপ

আমি ভিজিটরকে কিভাবে ভিজুয়াল স্টুডিও ২008-এর জন্য C ++-এর মধ্যে পরীক্ষা-নিরীক্ষার ফ্রেমওয়ার্ক সেট আপ করতে এবং ব্যবহারযোগ্য ব্যবহার করতে সক্ষম হচ্ছি, সম্ভবতঃ বিল্ট ইন ইউনিট পরীক্ষার স্যুট দিয়ে।

কোন লিঙ্ক বা টিউটোরিয়াল প্রশংসা করা হবে।

0
ro fr hi
আসলে আমি এখনও তাদের কোন ব্যবহার করেনি। আমি সিদ্ধান্ত নিলাম যে আমি ইউনিট পরীক্ষায় কী কাজ করছিলাম তা ছিল সবচেয়ে কার্যকর সময় নয়।
যোগ লেখক DShook, উৎস
Google C ++ টেস্ট ফ্রেমওয়ার্কটি মুক্তি দেয় যা xUnit ফ্রেমওয়ার্কগুলির সাথে খুব অনুরূপ। http://code.google.com/p/googletest/
যোগ লেখক popopome, উৎস
আপনি কি ফ্রেম ব্যবহার করে শেষ করেছেন?
যোগ লেখক Joakim Karlsson, উৎস

11 উত্তর

আমি VS2008 সম্পর্কে 100% নিশ্চিত না, কিন্তু আমি জানি যে ইউনিট টেস্টিং ফ্রেমওয়ার্ক যে মাইক্রোসফট তাদের টিম সুইট অংশ হিসাবে VS2005 মধ্যে প্রেরিত ছিল। NET জন্য শুধুমাত্র, C + +

আমি CppUnit ব্যবহার করেছি এবং এটি ঠিক ছিল। এনওনিট / জিউনিট / এর মতো একই রকম।

If you've used boost, they also have a unit testing library

বুদ্ধি পিছনে যারা কিছু আছে গুরুতর কোডিং চপ, তাই আমি তাদের কাঠামো খুব ভাল হতে হবে বলতে চাই, কিন্তু এটি সবচেয়ে ব্যবহারকারী বান্ধব নাও হতে পারে :-)

0
যোগ

আমি ইউনিটটিস্ট ++ ব্যবহার করি।

বছরের পর থেকে আমি এই পোস্টটি তৈরি করেছি সোর্স SourceForge থেকে github থেকে সরানো হয়েছে। এছাড়াও উদাহরণস্বরূপ টিউটোরিয়াল এখন অনেক অজ্ঞেয়বাদী - কোনও কনফিগারেশন বা প্রজেক্টে সেট আপ করা যায় না।

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

0
যোগ

There is a way to test unmanaged C++ using the built in testing framework within Visual Studio 2008. If you create a C++ Test Project, using C++/CLI, you can then make calls to an unmanaged DLL. You will have to switch the Common Language Runtime support to /clr from /clr:safe if you want to test code that was written in unmanaged C++.

I have step by step details on my blog here: http://msujaws.wordpress.com/2009/05/06/unit-testing-mfc-with-mstest/

0
যোগ
এটি আপনার C ++ কোডে নির্দিষ্ট সীমাবদ্ধতা রাখে, আমি কমপক্ষে একটি কোড বেস পেয়েছি যেখানে তার শিরোনামগুলি C ++ / CLI কোড অন্তর্ভুক্ত করার চেষ্টা ছিল তুলনায় বেশি সমস্যা ছিল। C ++ / CLI ব্যবহার করার জন্য আমার জন্য বড় সুবিধাটি হল আপনি ফোস্কি পরামিতি পরীক্ষার সাহায্যে এমবিউনিট / নুনিট / এক্স ইউ এনটনেট
যোগ লেখক Andy Dent, উৎস
গ্রেট, আমি খুশি এই সম্ভব, ধন্যবাদ :)
যোগ লেখক DanDan, উৎস

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

অসমর্থিত C ++ জন্য ইউনিট পরীক্ষা ভিসুয়াল স্টুডিওতে

0
যোগ

The unit tester for Visual Studio 2008 is only for .NET code as far as I know.

I used CppUnit on Visual Studio 2005 and found it to be pretty good.

যতটা আমি মনে রাখবেন, সেটআপ তুলনামূলকভাবে বেদনাদায়ক ছিল। শুধু নিশ্চিত করুন যে আপনার পরীক্ষার মধ্যে linker প্রকল্প (Linker? ইনপুট? অতিরিক্ত নির্ভরতা) cppunitd.lib অন্তর্ভুক্ত।

Then, #include in your header.

আপনি http://cppunit.sourceforge.net/doc এর পদক্ষেপগুলি অনুসরণ করতে পারেন /1.11.6/cppunit_cookbook.html আপনার পরীক্ষা ক্লাস কাজ পেতে।

0
যোগ

This page may help, it reviews quite a few C++ unit test frameworks:

  • CppUnit
  • আপনি Boost.Test করুন
  • CppUnitLite
  • আপনি NanoCppUnit করুন
  • আপনি ইউনিট ++, করুন
  • আপনি CxxTest করুন

CPPUnitLite চেক করুন বা CPPUnitLite2

CPPUnitLite was created by Michael Feathers, who originally ported Java's JUnit to C++ as CPPUnit (CPPUnit tries mimic the development model of JUnit - but C++ lacks Java's features [e.g. reflection] to make it easy to use).

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

আমি শুধু ইউনিটটিস্ট ++ যা CPPUnitLite2 এবং কিছু অন্যান্য কাঠামো থেকে উপাদান অন্তর্ভুক্ত।

মাইক্রোসফট WinUnit প্রকাশ করেছে।

Also checkout Catch or Doctest

0
যোগ
আমি আশ্চর্য হল যে ক্যাপ এখানে উল্লেখ করা নেই। এছাড়াও চেকআউট doctest - সংকলন গতিতে একটি বিশাল ফোকাস সঙ্গে ক্যাচ আমার reimplementation - চেকআউট FAQ তে দেখুন দুটি মধ্যে ভিন্ন কি
যোগ লেখক onqtam, উৎস
@ এনকাতাম খুব বিস্মিত না, এই প্রশ্ন / উত্তর ছিল 2008! আপনি লিঙ্ক লিঙ্ক প্রস্তাব যোগ করা হয়েছে।
যোগ লেখক Aardvark, উৎস
GoogleTest- :: :: :: :: :: ::::::::::: গুগলটেষ্ট :: :: :: :: ::::
যোগ লেখক Martin Beckett, উৎস
যোগ লেখক inazaruk, উৎস

VS9 .NET এর সাথে অন্তর্ভুক্ত কাঠামো, কিন্তু আপনি C ++ / CLI- এ পরীক্ষাগুলি লিখতে পারেন, যতদিন আপনি কিছু এনটাইটেলিং শেখার জন্য আরামদায়ক থাকেন, আপনি কোনও C ++ কোড পরীক্ষা করতে সক্ষম হবেন ।

boost.test and googletest look to be fairly similar, but adapted for slightly different uses. Both of these have a binary component, so you'll need an extra project in your solution to compile and run the tests.

আমরা ব্যবহার করা কাঠামোটি CxxTest , যা অনেক হালকা; এটি শুধুমাত্র শিরোলেখ, এবং আপনার হেডার থেকে পরীক্ষা স্যুট তথ্য পরিশ্রমে একটি Perl (!) স্ক্রিপ্ট ব্যবহার করে (CxxTest :: Base থেকে প্রাপ্ত স্যুটগুলি, আপনার সমস্ত পরীক্ষার পদ্ধতি 'নামের "পরীক্ষা দিয়ে শুরু")। স্পষ্টতই, এর জন্য আপনাকে একটি উৎস অথবা অন্য , যা আপনার বিল্ডিং পরিবেশের সেটআপের উপরে জুড়ে রয়েছে।

0
যোগ
আপনার কোডের জন্য প্রয়োজনীয় যে কোনও DLL সম্পর্কে সতর্কতা অবলম্বন করতে হবে - আমি NUnit এবং mbUnit C ++ / CLI কোড পরীক্ষা করে DLL গুলি লোড করার চেষ্টা করেছি।
যোগ লেখক Andy Dent, উৎস
CxxTest প্যাথন পরিবর্তে Perl ব্যবহার করতে পারে
যোগ লেখক Martin Beckett, উৎস

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

0
যোগ
দ্রষ্টব্য যে WinUnit পরে CodePlex winunit.codeplex.com এ সরানো হয়েছে
যোগ লেখক Andy Dent, উৎস

আমি VS2005 এবং Eclipse এর সাথে CppUnit ব্যবহার করেছি উইকি খুব পুঙ্খানুপুঙ্খ (বিশেষত যদি আপনি JUnit সঙ্গে পরিচিত হয়)।

0
যোগ

আমি CxxTest একই কারণের জন্য ভালো লেগেছে। এটি একটি হেডার ফাইল মাত্র তাই কোন লিঙ্কিং প্রয়োজন। আপনি পার্লের সাথে আটকে থাকেন না কারণ সেখানে একটি পাইথন রানার আছে। আমি শীঘ্রই গুগল লাইব্রেরি পর্যালোচনা করা হবে। বুস্ট স্টাফ খুব বেশী অন্যান্য ব্যাগ মধ্যে pulls।

0
যোগ

এখানে আমি মাইক্রোসফট এ আইআইএস URL Rewrite মডিউল পরীক্ষা করার জন্য ব্যবহার পদ্ধতি (এটি কমান্ড-লাইন ভিত্তিক, কিন্তু VS জন্য খুব কাজ করা উচিত):

  1. নিশ্চিত করুন যে আপনার হেডার ফাইল সোর্স কোডকে cpp ফাইলগুলি চালানোর দ্বারা এবং প্রয়োজন হলে ফরওয়ার্ড ঘোষণা ব্যবহার করে ব্যবহারযোগ্য।
  2. লাইব্রেরী (.lib) হিসাবে আপনার কোড পরীক্ষা করতে
  3. CLR সমর্থন সহ C ++ হিসাবে আপনার UnitTest প্রকল্পটি তৈরি করুন।
  4. আপনার হেডার ফাইলগুলি অন্তর্ভুক্ত করুন।
  5. আপনার .lib ফাইলগুলি অন্তর্ভুক্ত করুন।
  6. Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll এর একটি রেফারেন্স যোগ করুন
  7. আপনার ইউনিট পরীক্ষা ঘোষণা এবং এটি থেকে C ++ / নেটিভ কোড থেকে ঝাঁপ দাও (টাইপ থাকতে পারে) একটি সত্যিই ছোট ক্লাস ব্যবহার করুন:

এখানে একটি উদাহরণ:

// 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();
  }
};

এই পদ্ধতিতে, মানুষকে খুব বেশি C ++ / CLI স্টাফ শিখতে হবে না, C ++ নেটিভের মধ্যে সমস্ত বাস্তব পরীক্ষা করা হবে এবং TestShim ক্লাসটি পরীক্ষাটি 'MSTest.exe'- এ প্রকাশ করতে ব্যবহৃত হবে (অথবা এটি দৃশ্যমান হবে )।

নতুন পরীক্ষা যোগ করার জন্য আপনি শুধুমাত্র একটি নতুন [TestMethod] অকার্যকর ঘোষণা NewTest() {:: NewTest ();} পদ্ধতি এবং একটি নতুন অকার্যকর NewTest() নেটিভ ফাংশন। কোন ম্যাক্রো, কোন তিক্ততা, straighforward।

এখন, হেজ ফাইলটি ঐচ্ছিকভাবে, কিন্তু এটি C ++ নেটিভ স্বাক্ষর (যেমন wir_t * * এর পরিবর্তে Stirng ^) সহ অ্যাসর্ট ক্লাস 'পদ্ধতিগুলি প্রকাশ করতে ব্যবহার করা যেতে পারে, তাই এটি আপনি C ++ এর কাছাকাছি এবং C ++ / CLI থেকে দূরে রাখতে পারেন :

এখানে একটি উদাহরণ:

// 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
    static void AreEqual(T expected, T actual) {
        Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual(expected, actual);
    }

    // Etcetera, other overloads...
}
#pragma managed(pop)

আছে HTH

0
যোগ