Фитнес: где установить 'CLASSPATH_PROPERTY?

Мне нужно установить свойство classpath в fitnesse slim. Я установил как

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

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

2 ответа

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

Однако, если вы хотите превратить ваш проект в mavenize, рекомендуется использовать maven-classpath-plugin, и вы определяете все свои зависимости, как в вашем случае, если вы хотите иметь конкретную версию fitnesse под вашим classpath, вы определяете ее как зависимость, вот и все, В этот раз на своей корневой странице вместо объявления 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>

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

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

!define CLASSPATH_PROPERTY {A_SELF_DEFINED_PROPERTY_NAME}

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


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

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

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

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


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

Другие вопросы по тегам