如何在健身测试中加载自定义比较器
How do I load a customcomparator in a fitnesse test
我为 Fitnesse 创建了一个自定义比较器,并尝试加载它,但我无法让它工作。它在我的脚本 table 中被完全忽略,它直接进行字符串相等性比较。
比较器:
package com.company;
import fitnesse.testsystems.slim.CustomComparator;
public class ContainsComparator implements CustomComparator{
@Override
public boolean matches(String actual, String expected) {
if(actual != null && actual.contains(expected)){
return true;
}
else{
return false;
}
}
}
测试页内容:
!define TEST_SYSTEM {slim}
!path C:\Path\To\My\Comparator.jar
!|Import|
|fitnesse.fixtures|
!| SetUp | CustomComparators=contains:com.company.ContainsComparator |
!|Script|com.company.SomeFixture|
|check| response|contains:something|
只有最后一次检查失败,返回:[Something there] expected [contains:Something]。没有其他异常或失败(例如,安装程序不会引发错误)
我按照 http://fitnesse.org/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestCustomComparators and http://www.fitnesse.org/FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile 中的示例进行了此操作,但我找不到关于此的任何进一步文档。
尝试通过 plugins.properties 文件注册自定义比较器。
对于那些(像我一样)在应用已接受的答案和对问题的评论后仍然无法让这个工作的人:如果你 运行 使用 fitnesse-standalone.jar
健身,插件只是在 plugins
目录中寻找 jar 文件。将 class 文件放在那里是行不通的。
此外,URLClassLoader
用于查看 jar 文件内部,因此请确保 class 文件位于与其包对应的目录中。例如,问题中包含 ContainsComparator
的 jar 文件应具有以下目录结构:
.
+-- com
+-- company
+-- ContainsComparator.class
我为 Fitnesse 创建了一个自定义比较器,并尝试加载它,但我无法让它工作。它在我的脚本 table 中被完全忽略,它直接进行字符串相等性比较。
比较器:
package com.company;
import fitnesse.testsystems.slim.CustomComparator;
public class ContainsComparator implements CustomComparator{
@Override
public boolean matches(String actual, String expected) {
if(actual != null && actual.contains(expected)){
return true;
}
else{
return false;
}
}
}
测试页内容:
!define TEST_SYSTEM {slim}
!path C:\Path\To\My\Comparator.jar
!|Import|
|fitnesse.fixtures|
!| SetUp | CustomComparators=contains:com.company.ContainsComparator |
!|Script|com.company.SomeFixture|
|check| response|contains:something|
只有最后一次检查失败,返回:[Something there] expected [contains:Something]。没有其他异常或失败(例如,安装程序不会引发错误)
我按照 http://fitnesse.org/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestCustomComparators and http://www.fitnesse.org/FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile 中的示例进行了此操作,但我找不到关于此的任何进一步文档。
尝试通过 plugins.properties 文件注册自定义比较器。
对于那些(像我一样)在应用已接受的答案和对问题的评论后仍然无法让这个工作的人:如果你 运行 使用 fitnesse-standalone.jar
健身,插件只是在 plugins
目录中寻找 jar 文件。将 class 文件放在那里是行不通的。
此外,URLClassLoader
用于查看 jar 文件内部,因此请确保 class 文件位于与其包对应的目录中。例如,问题中包含 ContainsComparator
的 jar 文件应具有以下目录结构:
.
+-- com
+-- company
+-- ContainsComparator.class