Как загрузить нестандартный компаратор в тесте на пригодность
Я создал собственный компаратор для Fitnesse и попытался загрузить его, но я не могу заставить его работать. Он просто полностью игнорируется в моей таблице сценариев и выполняет прямое сравнение на равенство строк.
Компаратор:
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|
Только последняя проверка завершается неудачно, возвращая: [Нечто там] ожидаемое [содержит: Нечто]. Других исключений или сбоев нет (например, программа установки не выдает ошибку)
Я следовал за примерами из http://fitnesse.org/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestCustomComparators и http://www.fitnesse.org/FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile, но я не могу найти больше документация по этому вопросу.
2 ответа
Попробуйте зарегистрировать пользовательский компаратор через файл plugins.properties.
Для тех, кто (как и я) все еще не мог получить эту работу после применения принятого ответа и комментариев к вопросу: если вы используете фитнес, используя fitnesse-standalone.jar
, плагины ищутся только в файлах jar в plugins
каталог. Размещение файлов классов там не будет работать.
Также URLClassLoader
используется для просмотра файлов jar, поэтому убедитесь, что файл класса находится внутри каталогов, соответствующих его пакету. Например, файл jar, содержащий ContainsComparator
Исходя из вопроса должна иметь следующую структуру каталогов:
.
+-- com
+-- company
+-- ContainsComparator.class