Fitnesse:在哪里设置'CLASSPATH_PROPERTY?

时间:2016-03-20 16:30:33

标签: fitnesse fitnesse-slim

我需要在fitnesse slim中设置classpath属性。我设置为

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

但它没有得到应用。我应该在哪里以及如何设置此CLASSPATH_PROPERTY?

2 个答案:

答案 0 :(得分:0)

在哪里设置' CLASSPATH_PROPERTY?

!define CLASSPATH_PROPERTY {A_SELF_DEFINED_PROPERTY_NAME}

这是设置它的正确语法。您可以在测试之前的任何位置将其设置在同一页面或其父页面上。

但我确实感觉你错误地理解了CLASSPATH_PROPERTY的用法。

  

CLASSPATH_PROPERTY指定在运行测试之前将类路径(从!path语句收集)放入其中的环境变量的名称。当类路径的大小太大而某些inept操作系统无法处理时,这种情况最常用。您可以改为定义CLASSPATH_PROPERTY {CLASSPATH},而不是指定COMMAND_PATTERN的%p参数。这对Java最有用。对于其他语言,它可能没有多大意义。

Fitnesse使用java -cp %p %m启动测试。定义CLASSPATH_PROPERTY后,从!path收集的任何路径将首先汇总并放入CLASSPATH_PROPERTY并替换测试启动命令中的%p

如果未定义此属性,!path中的定义将直接放入%p。事实上,大多数情况下,不需要这个CLASSPATH_PROPERTY,除非你有一个非常长的类路径(或者它们太多),如上所述。

我想你只想为你的测试定义classpath。首先离开CLASSPATH_PROPERTY,然后将完整路径放入!path语句中。

答案 1 :(得分:0)

您应该在根页面上使用!path定义完整的类路径。所以所有的子维基都会使用相同的。请查看http://www.fitnesse.org/FitNesse.FullReferenceGuide.UserGuide.WritingAcceptanceTests.ClassPath以获取更多信息。

但是,如果你想对你的项目进行编组,最好使用maven-classpath-plugin并定义你的所有依赖项,如果你想在你的类路径下有特定的fitnesse版本你将它定义为依赖, 就这样。这次在您的根页面上,而不是声明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了解详情。