FitNesse SliM - .class文件的根页引用许多不同的项目

时间:2011-12-07 11:00:46

标签: fitnesse

我正在开发Java中的一些灯具,以便与fitnesse slim一起使用。当我必须用这样的路径更新我的根页时,我遇到了问题( EXCEPTION :java.lang.NoClassDefFoundError :):

!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 \ target \ classes中的类;有以下导入:

import no.joint.iperoom.test.AbstractDfcTest;

代码 。 。

这给出了我本地C盘工作空间中的完整路径:

C:\ WORKSPACE \项目\ iperoom_67_workspace \ iperoom \ BASE \ dfc_util \目标\类\没有\关节\ iperoom \测试

我的问题是,我可以在根页上说:

classpath:C:\ WORKSPACE \ Projects \ iperoom_67_workspace \ iperoom \ BASE *;就像从这里拿起所有.class文件一样。更一般的东西? 并且可能会在fitnesse测试页面上将几个pats导入.class文件:

|进口| | dfc_util.target.classes.no.joint.iperoom.test.AbstractDfcTest |

或者是否有其他更好的方法来解决这个问题,因为从antoher .class中调用另一个.class中的一个.class,我的根页面中有越来越多的'!paths'。

或许我的灯具代码不够好:

公共类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;
    }
}
}

干杯

马格努斯

1 个答案:

答案 0 :(得分:0)

我认为路径不会按照你想要的方式运行。如果你将它定义得太低,我很确定它找不到你的类。

当您执行以下任何操作时,!路径可以正常工作:

这将获取build / classes下的所有类文件,如果它位于fitnesse文件夹下的开头:

!path build/classes

这将处理多个jar文件:

!path lib/*.jar

需要注意的重要一点是,您可以利用环境变量。假设您有一个名为WORKSPACE的环境变量,它指向项目的基础,您可以这样做:

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

现实情况是,如果您的文件分散在多个文件夹中,则必须使用多个条目。如果只是为了确保您可以控制路径的处理顺序。如果您只在FrontPage上执行此操作,那么它下面的所有内容都将继承相同的路径。然后你只需要在一个位置管理它。因此,虽然列表可能比您更喜欢,但管理维护。