2011-10-06 10 views
6

FitnesseをいくつかのC++コードとのインターフェイスに使用しようとしていますが、fitnesse.orgのWebサイトで提供されているFit Cppプロジェクトファイルが機能しません(VC++ 6はありませんが、Visual Studio 2005そして2008年)。私はVS2005またはVS2008のソリューションファイルを開くように見えることさえできません(おそらく、VC++ 6で作成されたためです)。FitnesseをC++コードに組み込む方法はありますか?

これは誰でも入手できましたか? C++コードと通信するC#でテストフィクスチャを書く方法はありますか?もしそうなら、私はこれをどうやって行うのですか?ここで

は、コードとウェブサイトです: http://fitnesse.org/FrontPage.FitServers.CppFit.CppTestTools.SetUpCppTestTools

理想的には、私は、Visual Studioでこれに取り組み、cygwinのを避けるためにできるようにしたいと思います。私はちょうど弾丸を噛んでcygwinと一緒に行くべきです...どちらがうまくいくかわからない...試していない。

ご協力いただければ幸いです。前もって感謝します。

答えて

2

C++/CLIを使用することも選択肢の1つです。そうすれば、FitNesseからフィクスチャーコードへの橋渡しとしてfitSharpを使うことができますが、フィクスチャーコードは直接C++を呼び出すことができます。

ここでは、Calculatorクラスをテストする簡単な例を示します。まず、ここで我々がテストしたいC++コードです:

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のWikiページには次のようになります。

!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   | 

注意すべき点の1つは、C++/CLI DLLは一般に32ビットまたは64ビットのいずれかであるのに対し、fitSharpランナーは「任意のCPU」です。したがって、C++/CLI DLLを32ビットとしてビルドし、64ビットOSでfitSharpを使用しようとすると、「不正なフォーマット」エラーが発生します。その場合は、C++/CLI DLLを64ビットとしてビルドするか、corflagsを使用してfitsharpランナー(Runner.exe)を32ビットにします。

+0

偉大な答えですが、私はもう少し助けが必要です。 Visual Studioプロジェクトをセットアップするには余りにも多くの方法がありますが、これはC++/CLIコードでそれを行う方法を知っていることを前提としています。また、既に作成されているレガシーDLLを介してC++コードにアクセスする必要があることを明確にしたいと思います.C++コードを変更することはできません。助けてくれてありがとう –

+0

私のVS 2008と2010のインストールでは、新しいプロジェクト - >他の言語 - > Visual C++ - > CLR - >クラスライブラリを使ってC++/CLI DLLを作成します。レガシーDLLへのアクセスは問題ありません。標準C++アプリケーションのようにインポートライブラリを使用してください。 – Andy

+0

あなたは私の質問をここで見てください。http://stackoverflow.com/questions/32903687/working-with-fitnesse-fitsharp-and-c –

0

VC6回戻っても解決策ファイルはありませんでした。代わりに、VC6は.dswファイルに保存されたワークスペースを使用しました。プロジェクトファイルは.dspでした。

新しいVisual Studioで.dswまたは.dspを開くと、変換するように促すプロンプトが表示され、プロジェクト用に新しい.slnおよび.vcprojファイルが作成されるはずです。私は多くの複雑なプロジェクトをVC6からVS 2005、2008、2010に変換しました。私の経験では、変換はかなり信頼性高く機能します。変換に問題がある場合は、変換ログにVSが表示されます。

+0

Hmmmは変換を促されませんでした。 –

+0

それはできません。 dsw/dspファイルのあるフォルダを確認して、以前の試行の.sln/.vcprojが残っていないことを確認してください。それらのすべてを削除して、もう一度やり直してください。変換が完了すると、問題があるかどうかを示す変換ログが開いているはずです。 – Miguel

+0

私はこれを試しました。私は変換を依頼されたが、コンバータは動作していない、私は何も得ていない。 VSを構築したい場合は、VS内から新しいプロジェクトを作成することをお勧めします。メモ帳で再作成したいdspファイルを開き、使用されているファイルとオプションのリストを見ることができます。 – Miguel