2011-10-06 9 views
6

मैं कुछ सी ++ कोड के साथ इंटरफेस करने के लिए फिटनेस का उपयोग करने की कोशिश कर रहा हूं, लेकिन fite.org वेबसाइट पर उपलब्ध फ़िट सीपीपी प्रोजेक्ट फ़ाइल काम नहीं करती है (यह वीसी ++ 6 है जो मेरे पास नहीं है लेकिन मेरे पास विजुअल स्टूडियो 2005 है और 2008)। मैं वीएस2005 या वीएस -2008 में समाधान फ़ाइल खोलने की प्रतीत नहीं कर सकता (शायद क्योंकि यह वीसी ++ 6 में बनाया गया था?)।क्या सी ++ कोड में फिटनेस को शामिल करने का कोई तरीका है?

क्या कोई यह काम करने में सक्षम है? क्या कोई तरीका है कि मैं सी #+ में एक परीक्षण स्थिरता लिख ​​सकता हूं जो सी ++ कोड के साथ संचार करता है? यदि हां, तो मैं ऐसा करने के लिए कैसे जा सकता हूं। http://fitnesse.org/FrontPage.FitServers.CppFit.CppTestTools.SetUpCppTestTools

आदर्श रूप में, मैं दृश्य स्टूडियो में इस पर काम करते हैं और cygwin से बचने के लिए सक्षम होने के लिए करना चाहते हैं:

यहाँ कोड के साथ वेबसाइट है। क्या मुझे सिर्फ बुलेट काटने और साइगविन के साथ जाना चाहिए ... सुनिश्चित नहीं है कि यह भी काम करेगा ... कोशिश नहीं की है।

किसी भी मदद की बहुत सराहना की जाएगी। अग्रिम में धन्यवाद।

उत्तर

2

सी ++/सीएलआई का उपयोग एक विकल्प है। इस तरह आप फिटशर्प का उपयोग फिटनसे से पुल के रूप में अपने स्थिरता कोड में कर सकते हैं, लेकिन आपका स्थिरता कोड सीधे सी ++ में कॉल कर सकता है।

कैलकुलेटर कक्षा का परीक्षण करने का एक सरल उदाहरण यहां दिया गया है। सबसे पहले, यहाँ सी ++ कोड हम परीक्षण करना चाहते हैं:

class Calculator 
{ 
    public: 
    int Add(int x, int y) 
    { 
     return x + y; 
    } 
}; 

और यहाँ C++/CLI स्थिरता कोड है:

public ref class CalculatorFixture 
{ 
    public: 
    property int X; 
    property int Y; 
    property int Z; 

    void Execute() 
    { 
     Calculator calculator; 
     Z = calculator.Add(X,Y); 
    } 
}; 

FitNesse विकि पृष्ठ इस प्रकार दिखाई देगा:

!define TEST_SYSTEM {slim} 
!define COMMAND_PATTERN {%m -r fitSharp.Slim.Service.Runner,C:\fitnesse\fitsharp\fitsharp.dll %p} 
!define TEST_RUNNER {C:\fitnesse\fitsharp\Runner.exe} 

!path c:\CalculatorFixture.dll 

!|CalculatorFixture| 
|X   |Y   |Z?  | 
|2   |2   |4   | 
|3   |4   |7   | 

एक मुद्दा यह देखने के लिए है कि सी ++/सीएलआई डीएलएल आमतौर पर 32-बिट या 64-बिट होते हैं, जबकि फिटशर्प रनर 'कोई सीपीयू' होता है। तो यदि आप 32-बिट के रूप में अपना सी ++/सीएलआई डीएलएल बनाते हैं और 64-बिट ओएस पर फिटशर्प का उपयोग करने का प्रयास करते हैं, तो आपको एक 'गलत प्रारूप' त्रुटि मिल जाएगी। उस स्थिति में या तो 64-बिट के रूप में C++/CLI DLL का निर्माण करें, या fitsharp धावक (Runner.exe) को 32-बिट होने के लिए मजबूर करने के लिए corflags का उपयोग करें।

+0

शानदार उत्तर, लेकिन मुझे कुछ और मदद की ज़रूरत है। विजुअल स्टूडियो परियोजनाओं को स्थापित करने के कई तरीके हैं और यह मानता है कि मुझे सी ++/सीएलआई कोड के लिए ऐसा करने का तरीका पता है। साथ ही, मैं यह स्पष्ट करना चाहता हूं कि मुझे एक विरासत DLL के माध्यम से C++ कोड तक पहुंचने की आवश्यकता है जो पहले से ही बनाई गई है और मैं C++ कोड में कोई भी परिवर्तन नहीं कर सकता। मदद के लिए धन्यवाद –

+0

मेरे वीएस 2008 और 2010 प्रतिष्ठानों पर आप नई परियोजना-> अन्य भाषाओं-> दृश्य सी ++ -> सीएलआर-> कक्षा पुस्तकालय के माध्यम से एक सी ++/सीएलआई डीएलएल बनाते हैं। एक विरासत डीएलएल तक पहुंचने में कोई समस्या नहीं होनी चाहिए - एक मानक सी ++ ऐप से आयात आयात lib का उपयोग करें। – Andy

+0

क्या आप यहां मेरा प्रश्न देख सकते हैं http://stackoverflow.com/questions/32903687/working-with-fitnesse-fitsharp-and-c –

0

वीसी 6 बार वापस कोई समाधान फाइल नहीं थी। इसके बजाए, वीसी 6 ने .dsw फ़ाइलों में संग्रहीत वर्कस्पेस का उपयोग किया। परियोजना फाइलें .dsp थे।

यदि आप किसी नए विजुअल स्टूडियो में .dsw या .dsp खोलते हैं तो इसे आपको कनवर्ट करने के लिए संकेत देना चाहिए, और इसके परिणामस्वरूप परियोजना के लिए बनाई गई नई .sln और .vcproj फ़ाइलें होनी चाहिए। मैंने कई जटिल परियोजनाओं को वीसी 6 से वीएस 2005, 2008 और 2010 में परिवर्तित कर दिया है, मेरे अनुभव में रूपांतरण बहुत भरोसेमंद काम करता है। यदि रूपांतरण वीएस के साथ कोई समस्या है तो आपको रूपांतरण लॉग में दिखाया जाएगा।

+0

हम्म को कनवर्ट करने के लिए संकेत नहीं दिया गया था। –

+0

यह नहीं हो सकता है। कृपया उस फ़ोल्डर को चेक करें जहां dsw/dsp फ़ाइलें हैं और सुनिश्चित करें कि पिछले प्रयासों से .sln/.vcproj पर कोई बाएं नहीं हैं। उन सभी को हटाएं और पुनः प्रयास करें।जब रूपांतरण किया जाता है तो आपके पास कोई रूपांतरण लॉग होना चाहिए जो इंगित करता है कि क्या कोई समस्या है या नहीं। – Miguel

+0

मैंने अभी यह कोशिश की। मुझे कनवर्ट करने के लिए कहा गया था, लेकिन कनवर्टर काम नहीं कर रहा है, मुझे कुछ भी नहीं मिल रहा है। यदि आप निर्माण करने के लिए वीएस प्राप्त करना चाहते हैं, तो मैं अनुशंसा करता हूं कि आप वीएस के भीतर से ब्रांड नई परियोजनाएं बनाएं। आप डीएसपी फ़ाइलों को खोल सकते हैं जिन्हें आप नोटपैड में पुनर्निर्माण में रुचि रखते हैं और उपयोग की जाने वाली फ़ाइलों और विकल्पों की सूची देखते हैं। – Miguel

संबंधित मुद्दे

 संबंधित मुद्दे