FitNesse SliM - ​​ссылки на корневую страницу для файлов .class МНОГИЕ разные проекты - PullRequest
0 голосов
/ 07 декабря 2011

Я занимаюсь разработкой некоторых приборов на Java для использования с fitnesse slim.Я сталкиваюсь с проблемами ( ИСКЛЮЧЕНИЕ : 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 \ цель \ классы;имеет следующий импорт:

import no.joint.iperoom.test.AbstractDfcTest;

code.,.

Который дает полный путь в моей локальной рабочей области диска C:

C: \ WORKSPACE \ Projects \ iperoom_67_workspace \ iperoom \ BASE \ dfc_util \ target \ classes \ no \ joint \ iperoom \test

Мой вопрос, можно сказать, на корневой странице:

classpath: C: \ WORKSPACE \ Projects \ iperoom_67_workspace \ iperoom \ BASE *;как во всех файлах .class отсюда и выше.Что-то более общее?и, возможно, импортировать несколько патов в файлы .class на тестовой странице fitnesse:

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

Или есть какой-либо другой и лучший способ решить эту проблему с растущим числом «! путей» в моей корневой странице из-завызов одного .class из другого .class из другого .class и т. д.

Или, может быть, мой код прибора недостаточно хорош:

открытый класс SessionHelperTest / extends 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 голосов
/ 07 декабря 2011

Я не думаю, что путь будет работать так, как вы хотите. Если вы определите его на слишком низком уровне, я уверен, что он не найдет ваши классы.

Путь! Отлично работает при выполнении любого из следующих действий:

Это позволит получить все файлы классов в 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, то все, что находится ниже, будет наследовать тот же путь. Тогда вам нужно управлять им только в одном месте. Таким образом, хотя список может быть длиннее, чем вы предпочитаете, обслуживание ведется.

...