Java 从fitnesse发行版fitnesse_升级到最新版本开始提供";找不到夹具“;错误
我是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 从fitnesse发行版fitnesse_升级到最新版本开始提供";找不到夹具“;错误,java,jar,fitnesse,Java,Jar,Fitnesse,我是fitnesse工具的用户,并在其上编写了许多自动测试。最近,我收到一个远程计算机(Windows 10计算机,我安装了Fitnesse)的安全漏洞,它要求我更新我的web服务器。由于该系统上没有安装其他web服务器,我怀疑作为Fitnesse jar一部分的嵌入式web服务器需要升级 因此,我开始寻求升级Fitnesse项目以使用最新版本。在我的探索中,我发现我使用的是非常旧的Fitnesse版本(发行版20070619)。因此,我下载了最新的fitnesse standalone 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)版本。然而,我仍然遇到同样的问题。关于如何升级和解决这些问题,还有其他建议吗?