Java 从fitnesse发行版fitnesse_升级到最新版本开始提供";找不到夹具“;错误

Java 从fitnesse发行版fitnesse_升级到最新版本开始提供";找不到夹具“;错误,java,jar,fitnesse,Java,Jar,Fitnesse,我是fitnesse工具的用户,并在其上编写了许多自动测试。最近,我收到一个远程计算机(Windows 10计算机,我安装了Fitnesse)的安全漏洞,它要求我更新我的web服务器。由于该系统上没有安装其他web服务器,我怀疑作为Fitnesse jar一部分的嵌入式web服务器需要升级 因此,我开始寻求升级Fitnesse项目以使用最新版本。在我的探索中,我发现我使用的是非常旧的Fitnesse版本(发行版20070619)。因此,我下载了最新的fitnesse standalone jar

我是fitnesse工具的用户,并在其上编写了许多自动测试。最近,我收到一个远程计算机(Windows 10计算机,我安装了Fitnesse)的安全漏洞,它要求我更新我的web服务器。由于该系统上没有安装其他web服务器,我怀疑作为Fitnesse jar一部分的嵌入式web服务器需要升级

因此,我开始寻求升级Fitnesse项目以使用最新版本。在我的探索中,我发现我使用的是非常旧的Fitnesse版本(发行版20070619)。因此,我下载了最新的fitnesse standalone jar(版本20200501)。因此,我用这个新的fitnesse.jar替换了现有的fitnesse.jar,并重新启动了fitnesse服务器(注意,我使用的是开放JDK 8,jre 8 bin是在我的path变量上定义的)。这是我用来启动它的命令(就像使用的旧fitnesse jar一样):

java-cp fixtures/FitX.jar;fitnesse.jar fitnesse.fitnesse-p 801-l每日日志%1%2%3%4%5

这里FitX.jar是我们为自动化框架编写的一些fixture,因此我们将其添加到类路径中。这适用于旧版本的Fitnesse

启动时,它抛出了一个错误,因此我知道我需要使用新的主类定义,因此我再次使用以下命令启动它:

java-cp fixtures/FitSabre.jar;fitnesse.jar FitnessMain.FitnessMain-p 801-l每日日志%1%2%3%4%5

注意,我将fitnesse-standalone.jar重命名为fitnesse.jar。这成功地用新的fitnesse jar启动了服务器,并且我能够用一个新的漂亮的fitnesse Wiki页面重新加载我的测试。但是,当我执行测试时,它抛出了以下错误:

set
Could not find fixture: set.    %lniata%    to  %RESPONSE%  using row   1   and column  5
这就是我的原始文本的外观:

|使用行| 3 |和列| 2将|%objSession%设置为|%Logincreditial%|

而对于其他装置,整个页面充满了相同的错误。我相信这些是我们作为fitX.jar的一部分编写的定制装置

因此,我开始搜索这个问题,发现我需要在测试开始时添加以下行:

!define TEST_SYSTEM {slim}

!path C:\FitNesse
其中C:\FitNesse是我的所有固定装置所在的位置。以下是我的Fitnesse测试的目录结构:

- C:\FitNesse
    - DailyLogs
        - fitnesse20200621155541.log
        ...
    - FitNesseRoot
        - All my fitnesse tests as folders
        - content.txt
        - properties.xml
    - fixtures
        - commons-lang-2.1.jar
        - FitX.jar
        - log4j.jar
        - xml-config.jar
    - fitlibrary.jar (seems to be pretty old - just 279 KB file)
    - fitnesse.jar (the latest standalone jar version renamed as this)
以下是FitnessRoot中的content.txt内容:

!contents

!path classes
!path fitnesse.jar
!path fitlibrary.jar
!path fixtures/FitX.jar
!path fixtures/log4j.jar
!path fixtures/commons-lang-2.1.jar
!path fixtures/xml-config.jar
将更改(!define TEST\u SYSTEM{slim}&!path C:\FitNesse)添加到测试后,这是我重新执行测试时开始遇到的新错误:

set Could not invoke constructor for set[3] %strTestsessionname2% The instance decisionTable_0. does not exist  to The instance decisionTable_0. does not exist Not Provided The instance decisionTable_0. does not exist
所以,我决定从2007版到2020版Fitnesse不进行如此巨大的飞跃,我开始慢慢地进步,看看我的Fitnesse能达到的最大版本是什么。在我的研究中,我能够成功地从发布版20070619升级到20101101,并且我的测试执行得很好。然而,当我发布20110104时,我开始看到上面提到的“找不到夹具”。因此,我假设自2011年Fitnesse发布以来,我的测试将面临这个问题,因此我无法使用Fitnesse的最新版本


如何解决此问题,以便使用最新fitnesse版本的功能?

找到了解决问题的方法。以下是编辑模式下的部分fitnesse脚本,该脚本在旧版本中工作,而不是在新版本中工作:

|设置|

当切换到Fitnesse的新版本时,由于额外的原因,它没有作为决策表的一部分呈现!(感叹号)。因此,我将脚本编辑为:

|设置|

在此之后,页面在最新的Fitnesse版本中呈现良好,我再也没有出现“找不到夹具”错误


我现在可以使用最新版本的Fitnesse。

我不太清楚当时发生了什么。但您正在使用fit库(我自己没有使用过,而且似乎没有积极维护),这表明您正在使用fit,这意味着
!不应添加定义测试系统{slim}
。您使用的是最新的FitLibrary(我相信是20080812)吗?正如您所说,也更新了FitLibrary.jar(到20080812)版本。然而,我仍然遇到同样的问题。关于如何升级和解决这些问题,还有其他建议吗?