2011-12-07 1 views
0

私は、fitnesseスリムで使用するためにJavaでいくつかの什器を開発しています。私が問題に実行(例外:java.lang.NoClassDefFoundErrorが:)私はこのようなパスで、私のルート・ページを更新しなければなりません:FitNesse SliM - .classファイルへのルートページの参照多くの異なるプロジェクト

!define TEST_SYSTEM {slim} 
!path: C:\WORKSPACE\Projects\iperoom_67_workspace\acceptance_test_project\bin 
!path: C:\WORKSPACE\Projects\iperoom_67_workspace\iperoom\BASE\common_util\target\classes 
!path C:\WORKSPACE\Projects\iperoom_67_workspace\iperoom\BASE\dfc_util\target\classes 

どこクラスすなわち... BASE \ dfc_util \ターゲット\クラスで;

インポートなしジョイント。パーフェクトテスト.AbstractDfcTest;次のインポートがあります。

コード 。 。 。

私の地元のCドライブのワークスペースでの完全なパスを提供します

C:\ワークスペース\プロジェクト\ iperoom_67_workspace \ iperoom BASE \ \ dfc_util \ターゲット\クラス\なし\共同\ iperoomはテスト\

私の質問は、ルートページで言うことができます:

classpath:C:\ WORKSPACE \ Projects \ iperoom_67_workspace \ iperoom \ BASE *;ここからのすべての.classファイルを取り込むのと同じです。もっと一般的な何か? フィットネステストページの.classファイルにいくつかのパターンをインポートしてください:

| import | | dfc_util.target.classes.no.joint.iperoom.test.AbstractDfcTest |

また、ルートページの「!paths」の数が増えているので、この問題を解決するには他の方法がありますか?antoher .classなどの別の.classから.classを呼び出すことができます。

それとも私のフィクスチャのコードでは十分ではありません。

パブリッククラスSessionHelperTest/は私は思いませんAbstractDfcTest/{

public boolean testNewSession() { 

    System.out.println("Hello Joint"); 


    IDfSession session = SessionRegistry.getSuperUserSession("eRoomPCI_v_1_1"); 
try { 
     String si = session.getSessionId(); 
     System.out.println("The sessionId is:\n" + si); 
     return true; 
    } catch (DfException e) { 
     e.printStackTrace(); 
     return false; 
    } 
} 
} 

乾杯

マグナス

答えて

0

を拡張パスはあなたが望むように動作します。あなたがそれをあまりにも低いレベルで定義すれば、私はあなたのクラスを見つけられないと確信しています。

次のいずれかを行う際に、パス正常に動作します:!の

それはますFitnesseがで起動フォルダの下にある場合、これは、ビルド/クラス下のクラスファイルのすべてを取得します:

!path build/classes 

これにより、複数のjarファイルが処理されます。

!path lib/*.jar 

重要なことは、このために環境変数を利用できることです。

!path ${WORKSPACE}/acceptance_test_project/bin 
!path ${WORKSPACE}/acceptance_test_project/common_util/target/classes 
!path ${WORKSPACE}/acceptance_test_project/dfc_util/target/classes 

現実はあなたのファイルが複数のフォルダに散らばっている場合は、あなたが複数のエントリを使用する必要がありますということです:あなたは、あなたのプロジェクトのベースにポイントは、あなたがこれを行うことができます定義されWORKSPACEという環境変数を持っていると仮定すると、 。順序を制御できるかどうかを確認するだけで、パスが処理されます。 FrontPageでのみこれを行うと、その下のすべてが同じパスを継承します。次に、1つの場所で管理するだけです。したがって、リストがあなたよりも長くなるかもしれませんが、メンテナンスは管理されています。

関連する問題