Fitnesse: где установить «CLASSPATH_PROPERTY»?

Мне нужно установить свойство classpath в Fitnesse Slim. я установил как

!define CLASSPATH_PROPERTY {my-fitnesse-path}
!path ${CLASSPATH_PROPERTY}/fitnesse-20080812.jar

Но он не применяется. Где и как мне установить этот CLASSPATH_PROPERTY?


person user2359634    schedule 20.03.2016    source источник
comment
в чем ошибка, которую вы видите, и чего вы пытаетесь достичь?   -  person Xiawei Zhang    schedule 21.03.2016


Ответы (2)


Где установить 'CLASSPATH_PROPERTY?

!define CLASSPATH_PROPERTY {A_SELF_DEFINED_PROPERTY_NAME}

Это правильный синтаксис для его установки. Вы можете установить его в любом месте перед тестом, либо на той же странице, либо на ее родительской странице.


Но у меня есть ощущение, что вы неправильно понимаете использование CLASSPATH_PROPERTY.

CLASSPATH_PROPERTY указывает имя переменной среды, в которой путь к классам (собранный из !path операторы) будут размещены перед запуском теста. Это чаще всего используется, когда размер пути к классам слишком велик для некоторых неумелых операционных систем. Вместо указания аргумента %p в COMMAND_PATTERN вы можете !define CLASSPATH_PROPERTY {CLASSPATH}. Это наиболее полезно для Java. Для других языков это может не иметь большого значения.

Fitnesse использует java -cp %p %m для запуска теста. Когда CLASSPATH_PROPERTY определено, любые пути, собранные из !path, будут объединены и сначала помещены в CLASSPATH_PROPERTY, а затем заменят %p в команде запуска теста.

Если это свойство не определено, определения из !path будут помещены непосредственно в %p. На самом деле, в большинстве случаев этот CLASSPATH_PROPERTY не нужен, если только у вас нет очень-очень длинного пути к классам (или их слишком много), как упоминалось выше.


Я думаю, вы просто хотите определить путь к классам для своего теста. Просто сначала оставьте CLASSPATH_PROPERTY и сначала введите полный путь в оператор !path.

person Xiawei Zhang    schedule 21.03.2016

Вы должны определить полный путь к классу, используя !path на вашей корневой странице. поэтому все подвики будут использовать одно и то же. См. http://www.fitnesse.org/FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests.ClassPath для получения дополнительной информации.

Однако, если вы хотите улучшить свой проект, рекомендуется использовать плагин maven-classpath-plugin, и вы определяете все свои зависимости, как в вашем случае, если вы хотите иметь конкретную версию пригодности в своем пути к классам, вы определяете ее как зависимость, вот и все . На этот раз на вашей корневой странице вместо объявления 100 зависимостей просто используйте !pomFile pom.xml, а остальное позаботится подключаемый модуль. см. https://github.com/amolenaar/fitnesse-maven-classpath для получения дополнительной информации. .

Пример pom.xml может выглядеть примерно так, как показано ниже.

<dependency>
    <groupId>org.fitnesse</groupId>
    <artifactId>fitnesse</artifactId>
    <version>20150814</version>
</dependency>
.
.
<dependency>
        <groupId>org.fitnesse.plugins</groupId>
        <artifactId>maven-classpath-plugin</artifactId>
        <version>1.6</version>
        <!-- <scope>runtime</scope> -->
</dependency>

Вы также можете использовать подключаемый модуль Maven Fitnesse Launcher, который, исходя из моего опыта, отлично работает, когда вы работаете в среде CI. Проверьте http://fitnesse-launcher-maven-plugin.googlecode.com/svn/maven/site/fitnesse-launcher-maven-plugin/config.html для получения дополнительной информации.

person rreddy    schedule 22.03.2016